哪个SQL查询更好,匹配还是喜欢?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (9)

在数据库中搜索在任何“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”,而与之匹配的地方却找不到。

哪一种是首选的,还是有更好的解决方案?

提问于
用户回答回答于

将对这些列使用全文索引。另一种方法是进行全表扫描,对每一行进行一次连接,然后进行比较。

扫码关注云+社区