我有两列,例如:
col1 col2
---- ----
5qt exception for 5qt ammended
5qt exception for 5076 ammended
6d3 6d3 registered
我希望字符串匹配,以便col1
中存在col2
的值,返回col2。
所以我得到了:
exception for 5qt ammended
6d3 registered
我尝试使用locate()
,但没有太多运气:
select col2 from mytable
where locate(col1,col2) = 1;
我之前有过这样的工作,其中col2
以col1
的价值开始,即
col1 col2
---- ----
5qt 5qt ammended
5qt 5076 ammended
6d3 6d3 registered
但似乎col1
的价值出现在col2
的任何位置都会导致locate()
抛弃。
答案 0 :(得分:2)
你的逻辑没问题。只需修正比较:
select col2
from mytable
where locate(col1, col2) >= 1;
或者,您可以使用like
:
where col2 like '%' || col1 || '%'
答案 1 :(得分:1)
戈登工作的解决方案,您也可以使用:
where position(col1 in col2 ) > 0
或使用:
where replace(col2 ,col1 , '') <> col2