【发布时间】:2014-10-01 18:17:51
【问题描述】:
如何使用 SQL 检查一列中的字符串值是否部分包含在另一列的字符串值中?
如果我必须检查 tbl 表的 col_1 列是否包含“Mercury”,我会执行如下查询:
SELECT * FROM tbl WHERE col_1 LIKE '%Mercury%'
但是如果我必须检查每一行,如果 col_2 的完整值部分包含在 col_1 中,我该怎么做。
类似:
SELECT * FROM tbl WHERE col_1 LIKE col_2
行不通。
我有一个涉及SUBSTR、INSTR 和LENGTH 的解决方案,但这使我的查询速度太慢。
请发表您的建议。
我想在 MySQL 中执行此操作。
【问题讨论】:
-
搜索子字符串匹配肯定很慢。它不能使用索引,因此需要进行表扫描。