У меня есть строка, которая содержит число, разделенное запятой, как показано ниже.
15,22,20,26,33,445,40,44,22,225,115,2
Я хочу знать, есть ли число, говорящее 15
, в этой строке или нет.
Проблема в том, что 15
и 115
оба совпадают.
То же самое для другое число, скажем, 2
, для этого случая 20
, 25
и 225
совпадают.
Только для обоих случаев оно должно возвращаться, если в 15
или 2
строка.
Я пытался использовать ключевое слово like
, но оно не работает. Он также возвращает строки с 115
или 20, 225, 222
при совпадении 15 and 2
соответственно.
Кто-нибудь может предложить шаблон regex
?
Обновление
У меня есть запрос, подобный приведенному ниже, где я использовал ключевое слово like
, но Я получил неправильный результат по вышеуказанной причине.
SELECT DISTINCT A.id,A.title,A.title_hi,A.cId,B.id as cid1,A.report_type ,A.icon_img_url, A.created_at , A.news_date
FROM tfs_report_news A, tfs_commodity_master B
WHERE (',' + RTRIM(A.cId) + ',') LIKE ('%,' + B.id + ',%')
AND A.ccId = B.ccId AND A.`report_type`= "M"
AND A.isDeleted=0 AND A.isActive=1 AND B.isDeleted=0
AND B.status=1
AND A.news_date= (SELECT MAX(T.news_date)
FROM tfs_report_news T WHERE (',' + RTRIM(T.cId) + ',')
LIKE ('%,' + B.id + ',%'))
ORDER BY created_at desc, id desc limit 100;
Здесь tfs_report_news
содержит строку 15,22,20,26,33,445,40,44,22,225,115,2
в качестве имени столбца
cId
и индивидуальный cId
как 15
или 2
является id
из tfs_commodity_master