在数据库中搜索在任何“foo”列中同时具有关键字“foo”和“bar”的行_DESC“和”BAR_“DESC”,我会做这样的事情:
SELECT *
FROM t1
WHERE MATCH (t1.foo_desc, t2.bar_desc) AGAINST ('+foo* +bar*' IN BOOLEAN MODE)
或
SELECT *
FROM t1
WHERE (CONCAT(t1.foo_desc, t2.bar_desc) LIKE '%foo%') AND (CONCAT(t1.foo_desc, t2.bar_desc) LIKE '%bar%')
我预计最后一个查询的缺点是性能。
好处是,类似的查询会找到“xxfoo”,而与之匹配的地方却找不到。
哪一种是首选的,还是有更好的解决方案?
发布于 2018-03-21 15:51:05
https://stackoverflow.com/questions/-100004287
复制相似问题