我有一个CLOB类型的列'PHOTOIDS',它有一个逗号分隔的数字列表。我需要查询其中包含一组“photoIds”的所有记录。查询THE CLOB列以获取数字列表的最佳方法是什么。
我正在寻找与
语义相似的东西SELECT * FROM TABLE_NAME WHERE PHOTOIDS IN(1,2,3)
答案 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就可以解决这个问题,如果你想了解更多关于如何使用这两个的信息,请告诉我。