我目前有数据库项目“SkönhetKroppsvård按摩水疗”作为类别(在一个字符串中)。
目前我使用
WHERE Select6 LIKE '%spa%'
我想要的是选择例如。 “Spa”并获取包含“Spa”而非“Spas”的字段
答案 0 :(得分:1)
尝试以下条件,一个在文本中的任何地方检查单词spa,在结尾检查其他任何单词spa。
WHERE Select6 LIKE '% spa %' or Select6 LIKE '% spa' or Select6 LIKE 'spa' or Select6 LIKE 'spa %'
答案 1 :(得分:1)
不要将'%'放在最后。该符号相当于在这里说“任何字符串”。所以当你做%spa%时,它会匹配任何包含spa的中间某个字符串。
如果您的所有字符串都按照您所说的格式进行格式化,并且搜索字词始终位于结尾处,那么只需执行'%spa'即可。通过这种方式,它会找到以“Spa”结尾的字符串。
所以,例如:WHERE Select6 LIKE'%Spa'
答案 2 :(得分:0)
你可以尝试
WHERE Select6 LIKE '%spa%' AND NOT LIKE '%spas%'
这将采用xxxxspaxxxx而不是xxxxspasxxxx
如果spa不是最后一个词或第一个词
,它将起作用或
最后的水疗中心在哪里选择6 LIKE'%spa%'或选择6 LIKE'%spa'或选择6 LIKE'spa%'或选择6 LIKE'spa'或
'% spa'
开始'spa %'
的水疗中心
只有spa 'spa'
答案 3 :(得分:0)
在位置末尾删除%。因为双方%在单词中搜索“Spa”而不是位置的结尾。
其中Select6 LIKE'%Spa
我喜欢@rs.方式,因为如果你忘记修剪,你也有那些行,所以这样使用
where Select6 LIKE '%Spa %' or Select6 LIKE '%Spa'
答案 4 :(得分:-1)
查看mySQL fulltext search。这需要一些时间才能进入并有一些注意事项,但它可能是满足您需求的唯一理智方式。
Boolean full-text searches应该适合您,例如
SELECT * FROM articles WHERE MATCH (title,body)
AGAINST ('+Spa' IN BOOLEAN MODE);