2012-03-05 49 views
0

我目前拥有“SkönhetKroppsvårdMassage Spa”类别的数据库项目(在一个字符串中)。MySQL选择确切的单词

目前我使用

 WHERE Select6 LIKE '%spa%' 

我想是选择如。 “水疗”,并获得包含“水疗”,而不是“水疗”的字段

回答

-1

查找到mySQL fulltext search。需要一些时间才能进入并有一些注意事项,但它可能是满足您的要求的唯一理智方式。

Boolean full-text searches应该为你工作,例如

SELECT * FROM articles WHERE MATCH (title,body) 
AGAINST ('+Spa' IN BOOLEAN MODE); 
+0

我想这是我必须去的方式..但是这对我来说很难:/ – Mackelito 2012-03-05 20:05:05

+0

@Mackelito上面的例子不适合你吗?在'Select6'中添加一个全文索引并执行'。 ... MATCH(Select6)....'应该可以工作 – 2012-03-05 20:09:43

+0

我目前正试图改变Joomla的扩展如何获取项目..并且选择查询是以某种automagic方式构建的..不能找出:( – Mackelito 2012-03-05 20:13:15

1

请尝试以下条件,检查单词水疗中心的任何地方在文本和其他结束。

WHERE Select6 LIKE '% spa %' or Select6 LIKE '% spa' or Select6 LIKE 'spa' or Select6 LIKE 'spa %' 
1

不要把'%'放在最后。这个符号相当于说“这里有任何字符串”。所以当你做%spa%时,它会匹配任何包含中间某处spa的字符串。

如果您所说的所有字符串都按照您的说法进行了格式设置,并且您的搜索字词始终位于最后,请执行“%spa”。这样它会找到你以“Spa”结尾的字符串。

因此,例如:WHERE Select6 LIKE '%温泉'

0

你可以尝试

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

这将需要xxxxspaxxxx但不xxxxspasxxxx

所以它会工作,如果温泉是不是最后一个字或第一个

或者

WHERE Select6 LIKE '%温泉%' OR Select6 LIKE '%温泉' OR Select6 LIKE '温泉%' OR Select6 LIKE '温泉' OR

温泉在端'% spa'

温泉在开始时'spa %'

仅在位置结束温泉'spa'

+0

约像晶石,铁锹,跨度等词 – 2012-03-05 17:43:28

+0

我这个问题理解是什么,他希望与水疗中心,但不是温泉任何 – Marc 2012-03-05 17:46:12

+0

他提到,作为一个例子:) – 2012-03-05 17:47:40

0
  1. 移除%。因为双方%在词中搜索“Spa”并非位置结束。

    其中Select6 LIKE“%温泉

我喜欢@rs.方式,因为如果你忘了修剪,你有太行,所以用这种方式

where Select6 LIKE '%Spa %' or Select6 LIKE '%Spa'