与LIKE - SQL / PHP完全匹配

时间:2013-04-11 16:44:47

标签: php mysql sql sql-like

鉴于文字:

"Hello, I'm from Hell",
"Hello, I'm from Ell"

和以下SQL子句:

SELECT * FROM table WHERE text LIKE '%ell%'

我得到了上面的两个文本,但我不想得到这两个文本,因为我正在寻找文本 “Ell”而不是“Hell”

如果有人知道我的意思,你能帮助我吗?

提前致谢!

修改

更好的例子

就像你想要寻找“大”这个词一样,但它不能成为“更大”或“最大”之类的任何其他词的一部分

5 个答案:

答案 0 :(得分:9)

您可以使用MySQL Regex字边界匹配:

SELECT * FROM table WHERE text REGEXP '[[:<:]]ell[[:>:]]'

这匹配一个字符串ell和一边的字边界。

答案 1 :(得分:1)

你也可以搜索一个空格吗?

SELECT * 
FROM table 
WHERE text LIKE '% ell%'
OR text LIKE 'ell%' // needed if string starts with ell

答案 2 :(得分:1)

你可以试试这个:

SELECT * FROM table WHERE text LIKE BINARY '%ell%'

答案 3 :(得分:0)

选择完全匹配无区分大小写

SELECT * FROM table  其中LOWER(列)喜欢BINARY LOWER(&#39; ell&#39;)

如果文本有多行,则可以正常工作。

答案 4 :(得分:0)

您可以仅在查询中使用REGEXP。看看这个资源,其中包含您需要的所有细节。

语法很简单,如下所示

$sql= "select * from post where title REGEXP '$s'";