相关疑难解决方法(0)

哪个SQL查询更好,MATCH AGAINST还是LIKE?

要在数据库中搜索任何列"foo_desc"和"bar_desc"中包含关键字"foo"和"bar"的行,我会执行以下操作:

SELECT * 
FROM t1 
WHERE MATCH (t1.foo_desc, t2.bar_desc) AGAINST ('+foo* +bar*' IN BOOLEAN MODE)
Run Code Online (Sandbox Code Playgroud)

要么

SELECT * 
FROM t1 
WHERE (CONCAT(t1.foo_desc, t2.bar_desc) LIKE '%foo%') AND (CONCAT(t1.foo_desc, t2.bar_desc) LIKE '%bar%')
Run Code Online (Sandbox Code Playgroud)

我预计最后一个查询的缺点是性能.

好处是LIKE查询找到'xxfoo',其中MATCH AGAINST没有.

哪个是首选的还是有更好的解决方案?

mysql sql database search

66
推荐指数
1
解决办法
8万
查看次数

标签 统计

database ×1

mysql ×1

search ×1

sql ×1