我想知道有没有办法,MySQL查询可以动态搜索WHERE
子句中的任何内容。
例如,如果查询是
Select *
from table
where item = 'Dell Optiplex 390'
它应该搜索具有以下内容的行:
Dell Optiplex 390
Dell Desktop Optiplex 390
Dell Laptop Optiplex 390
Optiplex dual core 390
etc., etc.
答案 0 :(得分:1)
对于这些搜索功能,我认为您正在寻找匹配算法。你可以使用Levenshtein Distance Algorithm,如果你使用php,有一个php函数levenshtein
来实现这个算法,以获得匹配的数据,还有Needleman–Wunsch algorithm,如果你的数据是只有英文和一个单词栏,您可以使用Soundex Algorithm。
这是一个开始,你会在Mysql中找到很多针对这些算法的实现。
答案 1 :(得分:1)
如果您需要知道该字段包含任何单词。
Select *
from table
where item like '%Dell%' OR item like '%Optiplex%' or item like '%390%'
答案 2 :(得分:0)
这里有一个很好的答案被删除,我会修改答案:
Select * from table where
lower(item) like '%dell%optiplex%390%' or
lower(item) like '%optiplex%390%' or
lower(item) like '%dell%laptop%390%' or ...
答案 3 :(得分:0)
将SQL LIKE
子句与通配符一起使用:
SELECT *
FROM table
WHERE item LIKE '%Dell%Optiplex390%';
这是一本很好的参考指南: