MySQL选择确切的单词

时间:2012-03-05 17:38:33

标签: mysql select exact-match

我目前有数据库项目“SkönhetKroppsvård按摩水疗”作为类别(在一个字符串中)。

目前我使用

     WHERE Select6 LIKE '%spa%'

我想要的是选择例如。 “Spa”并获取包含“Spa”而非“Spas”的字段

5 个答案:

答案 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)

  1. 在位置末尾删除%。因为双方%在单词中搜索“Spa”而不是位置的结尾。

    其中Select6 LIKE'%Spa

  2. 我喜欢@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);