精度使用SQL LIKE

时间:2013-11-15 23:22:23

标签: mysql sql

大家好我想用LIKE过滤db记录,但我需要更准确的结果 我使用MySQL:5.1.61-log

产品

  • ID
  • 名称
  • 关键字

和一些记录(更新,只是添加了一个网址来说明)

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运算符是否适合这种情况?

谢谢你!

2 个答案:

答案 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 %'

这解决了黄色可能(或可能不是)列表中的第一个和/或最后一个“单词”的问题。