"Hello, I'm from Hell",
"Hello, I'm from Ell"
及以下SQL子句:
SELECT * FROM table WHERE text LIKE '%ell%'
我得到上述两种文本,但我不希望得到两个文本,因为我正在寻找文字 “埃尔”而不是“地狱”
如果有人知道我的意思,你能帮我吗?
在此先感谢!
编辑:
更好的例子
就像当你想查找单词“大”,但它不能是任何其他的字像“大”或“最大”
的一部分"Hello, I'm from Hell",
"Hello, I'm from Ell"
及以下SQL子句:
SELECT * FROM table WHERE text LIKE '%ell%'
我得到上述两种文本,但我不希望得到两个文本,因为我正在寻找文字 “埃尔”而不是“地狱”
如果有人知道我的意思,你能帮我吗?
在此先感谢!
编辑:
更好的例子
就像当你想查找单词“大”,但它不能是任何其他的字像“大”或“最大”
的一部分你可以使用MySQL的正则表达式字边界匹配:
SELECT * FROM table WHERE text REGEXP '[[:<:]]ell[[:>:]]'
这其中cosntains字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表 其中LOWER(列)像BINARY LOWER( 'ELL')
它的工作原理,如果文本具有多行的完全匹配。
你可能不得不使用正则表达式 – Oussama 2013-04-11 16:46:04
你的意思是你想执行你的类似语句的区分大小写? – 2013-04-11 16:49:33
不区分大小写。我想搜索单独的单词“ell”。我不想得到回报,因为埃尔是地狱的一部分,如果你知道我的意思。 – Mossawi 2013-04-11 16:51:18