SQL查询逗号分割的字段
需求就是,这样一个表里,查询NOTICE_QX含有03的数据。不用LIKE。

方案有2种:
1、ORACLE:
1 SELECT * 2 3 FROM (SELECT N.NOTICE_UUID, 4 5 N.NOTICE_RELEASETIME, 6 7 N.NOTICE_TITLE, 8 9 REGEXP_SUBSTR(N.NOTICE_QX, '[^,]+', 1, LEVEL) QX 10 11 FROM PZ_NOTICE_INFO N 12 13 CONNECT BY LEVEL <= REGEXP_COUNT(NOTICE_QX, ',') + 1 14 15 AND NOTICE_UUID = PRIOR NOTICE_UUID 16 17 AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL 18 19 ) 20 21 WHERE QX = '03';
2、MySQL
SELECT * FROM PZ_NOTICE_INFO WHERE FIND_IN_SET(‘03’,NOTICE_QX)
使用时,请关注查询效率。
浙公网安备 33010602011771号