我想在表中找到与模式匹配的所有记录(实际上是模式列表)。
SELECT * FROM TABLENAME WHERE COL1喜欢'%number%';
number是一个列表,所有值都在另一个表的列中
编辑:
SELECT * FROM TABLENAME WHERE COL1 like '%<val>number</val>%';
我从TABLE_A得到一个列表ID,我试图查询TABLE_B,其列存储了数千个xml文件。在这些xml文件中,我试图寻找模式
<val>number</val>
其中number在ids列表中。
答案 0 :(得分:0)
使用UNION ALL运算符和基本联接:
SELECT t.*
FROM TABLENAME t
JOIN(
SELECT '<val>123</val>' As pattern FROM dual UNION ALL
SELECT '<val>245</val>' FROM dual UNION ALL
SELECT '<val>234</val>' FROM dual UNION ALL
SELECT '<val>323</val>' FROM dual UNION ALL
SELECT '<val>163</val>' FROM dual
) p
ON t.col1 LIKE '%' || p.pattern || '%'
演示:http://sqlfiddle.com/#!4/a914f/2
修改
如果有另一个包含模式值的表,则该任务更加简单,只需:
SELECT t.*
FROM TABLENAME t
JOIN AnotherTable p
ON t.col1 LIKE '%' || p.pattern || '%'