2013-02-17 83 views
0

我有以下SQL查询返回所有包含NANI的单词。比较LIKE子句与完整词

SELECT * FROM some_tbl WHERE q LIKE '%NANI%'; 

这是很好的,当我有这样在我的数据库一句:

纳尼出生在佛得角移民到欧洲与他的家人在 早期的年龄。

但是,如果我只输入NANI以上的查询,该句子将再次返回。

我需要一个模式,比较LIKE子句与完整的单词而不是单词的一部分,任何想法?

+0

你只考虑“白色空间”作为分隔符?还是特殊字符?例如“My-NANI ...”。如果您考虑使用特殊字符作为分隔符,您可能需要使用REGEXP而不是LIKE。 – Slowcoder 2013-02-17 15:35:49

回答

2

只要把空格周围的目标字符串:

SELECT * 
FROM some_tbl 
WHERE q LIKE '% NANI %' 
    or q LIKE 'NANI %' 
    or q LIKE '% NANI' 
    or q = 'NANI'; 
+0

感谢工作像一个魅力;-) – NullPointer 2013-02-17 15:29:29

+1

@DKN更新的答案,包括“单词”的情况。 – BellevueBob 2013-02-20 00:10:26