gpt4 book ai didi

MYSQL - Like 语句不适用于特殊字符

转载 作者:行者123 更新时间:2023-11-29 01:27:17 27 4
gpt4 key购买 nike

我遇到以下问题:

我的 table 里面有以下东西:

ID     Long    Latt    city 
1 n/a n/a Newcastle-upon-Tyne
2 n/a n/a Newcastle Upon Tyne
3 n/a n/a Stoke-on-Trent
4 n/a n/a Stoke on Trent

如果有人在搜索“NewcaSTLe Upon Type”中输入,我希望他们都显示。我的sql语句是:

select * from `properties` where `city` LIKE '%Newcastle Upon Tyne%'

但只有一个显示?但它是一个 LIKE 语句,“NewcaSTLe-Upon-Tyne”和“NewcaSTLe Upon Tyne 是相似的 - 那么为什么在这种情况下只显示完全匹配?

最佳答案

LIKE 比较仅针对该行返回 TRUE。

LIKE 比较本质上等同于相等比较

SELECT 'ab d' =    'ab d'  --> TRUE
, 'ab d' LIKE 'ab d' --> TRUE

区别在于 LIKE 在右侧的值中支持 两个 通配符....百分号字符 (%) 和下划线字符 (_)。 % 字符匹配零个、一个或多个任意字符。 _ 字符匹配任何一个字符。


比较来自

的结果
 city LIKE 'Newcastle_Upon_Tyne'
city LIKE 'Newcastle%Upon%Tyne'

对于 city 的值,这两个都将评估为 true

'Newcastle-Upon-Tyne'
'Newcastle7Upon4Tyne'

此外,对于 city 的值,带有百分号的也会计算为 TRUE,例如

'NewcastleUpon56789Tyne'
'Newcastle FEE- UponFI Tyne'

如果你想要比 LIKE comarison 提供的更精确的匹配,你可以使用正则表达式来代替..

city REGEXP 'Newcastle[ -]Upon[ -]Tyne'

对于城市值,这将返回 TRUE

'Newcastle Upon Tyne'
'Newcastle-Upon Tyne'
'Newcastle Upon-Tyne'
'Newcastle-Upon-Tyne'

关于MYSQL - Like 语句不适用于特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36603876/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com