鉴于文字:
"Hello, I'm from Hell",
"Hello, I'm from Ell"
和以下 SQL 子句:
SELECT * FROM table WHERE text LIKE '%ell%'
我得到了上面的两个文本,但我不想同时得到两个文本,因为我正在寻找文本“Ell”而不是“Hell”
如果有人知道我的意思,你能帮帮我吗?
提前致谢!
编辑:
更好的例子
就像你想寻找“大”这个词,但它不能是“更大”或“最大”等任何其他词的一部分
您可以使用 MySQL Regex 单词边界匹配:
SELECT * FROM table WHERE text REGEXP '[[:<:]]ell[[:>:]]'
这匹配一个字符串,该字符串包含ell
在任一侧具有单词边界的单词。
你也可以搜索一个空间吗?
SELECT *
FROM table
WHERE text LIKE '% ell%'
OR text LIKE 'ell%' // needed if string starts with ell
你可以试试这个:
SELECT * FROM table WHERE text LIKE BINARY '%ell%'
选择完全匹配不区分大小写
SELECT * FROM table where LOWER(column) like BINARY LOWER('ell')
如果文本有多行,它可以工作。
您可以在查询中使用 REGEXP。看看这个资源,它包含你需要的所有细节。
语法简单如下
$sql= "select * from post where title REGEXP '$s'";