IN Query with CLOB

时间:2013-07-11 14:14:01

标签: sql oracle plsql rdbms

我有一个CLOB类型的列'PHOTOIDS',它有一个逗号分隔的数字列表。我需要查询其中包含一组“photoIds”的所有记录。查询THE CLOB列以获取数字列表的最佳方法是什么。

我正在寻找与

语义相似的东西

SELECT * FROM TABLE_NAME WHERE PHOTOIDS IN(1,2,3)

2 个答案:

答案 0 :(得分:0)

SELECT * 
FROM table_name 
WHERE dbms_lob.instr(photoids, '1') > 0 
  AND dbms_lob.instr(photoids, '2') > 0
  AND dmbs_lob.instr(photoids, '3') > 0;

只要您有一个相对有限的数字列表,您就可以搜索:)

答案 1 :(得分:0)

我建议你将你的设计标准化,并有一个子表来保存photoIds ..然后它将是高效和简单的

如果你不能这样做,那么使用一个过程/函数或dynamic-sql就可以解决这个问题,如果你想了解更多关于如何使用这两个的信息,请告诉我。