大家好我想用LIKE过滤db记录,但我需要更准确的结果 我使用MySQL:5.1.61-log
产品
和一些记录(更新,只是添加了一个网址来说明)
1 | prod1 | https://www.site.com/?q=yellow whiteBLUEred
2 | prod2 | https://www.site.com/?q=yellow-and-green blue orange_black
SELECT * FROM products WHERE keyword LIKE '%yellow-and-green%'
返回(1)行。这是正确的
但
SELECT * FROM products WHERE keyword LIKE '%yellow%'
返回(2)行但只有一条记录具有关键字“yellow”
我该如何解决这个问题? LIKE运算符是否适合这种情况?
谢谢你!答案 0 :(得分:1)
为什么不使用:
SELECT * FROM products WHERE keyword LIKE '%yellow %'
如果您总是有空格,请将其包含在您的查询中
处理其他可能性:
SELECT * FROM products WHERE (keyword LIKE 'yellow %' or keyword LIKE '% yellow %' or keyword LIKE '% yellow')
答案 1 :(得分:1)
怎么样:
where keywords = 'yellow'
or keywords like 'yellow %'
or keywords like '% yellow'
or keywords like % yellow %'
这解决了黄色可能(或可能不是)列表中的第一个和/或最后一个“单词”的问题。