0

我目前有以“Skönhet Kroppsvård Massage Spa”为类别的数据库项目(在一个字符串中)。

目前我使用

     WHERE Select6 LIKE '%spa%'

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

4

5 回答 5

1

尝试以下条件,一个检查文本中任何地方的单词 spa,最后检查另一个。

WHERE Select6 LIKE '% spa %' or Select6 LIKE '% spa' or Select6 LIKE 'spa' or Select6 LIKE 'spa %'
于 2012-03-05T17:41:12.413 回答
1

不要把“%”放在最后。该符号相当于说“这里的任何字符串”。因此,当您执行 %spa% 时,它将匹配中间某处包含 spa 的任何字符串。

如果您的所有字符串都按照您所说的进行格式化并且您的搜索词始终位于末尾,则只需执行“%spa”。这样,它会找到以“Spa”结尾的字符串。

因此,例如: WHERE Select6 LIKE '%Spa'

于 2012-03-05T17:41:54.420 回答
0
  1. 删除位置末尾的 %。因为双方 % 在单词中搜索“Spa”而不是位置的结尾。

    其中 Select6 LIKE '%Spa

我喜欢@rs。方式因为如果你忘记了修剪,你也有那些行,所以使用这种方式

 where Select6 LIKE '%Spa %' or Select6 LIKE '%Spa'
于 2012-03-05T17:50:22.137 回答
0

你可以试试

WHERE Select6 LIKE '%spa%' AND NOT LIKE '%spas%'

这将需要 xxxxspaxxxx 但不是 xxxxspaxxxx

因此,如果 spa 不是最后一个词或第一个词,它将起作用

或者

WHERE Select6 LIKE '% spa %' OR Select6 LIKE '% spa' OR Select6 LIKE 'spa %' OR Select6 LIKE 'spa' 或

最后的水疗中心'% spa'

一开始的水疗中心'spa %'

只有温泉'spa'

于 2012-03-05T17:42:42.233 回答
-1

查看mySQL 全文搜索。需要一些时间才能进入并有一些警告,但这可能是满足您要求的唯一明智的方法。

例如,布尔全文搜索应该适合您

SELECT * FROM articles WHERE MATCH (title,body)
AGAINST ('+Spa' IN BOOLEAN MODE);
于 2012-03-05T17:51:12.807 回答