
上表中 pids是一個字串逗號分隔 ;
如果我有一個字串'11111,11337,112333';要求這個字串按照逗號分隔 11111 、11337 、112333 只要這里面的字串出現在pids里面 就查詢出來 也就是說上面輸入的'11111,11337,112333’只有11337包含在里面 則查詢包含的 那么這sql怎么寫
uj5u.com熱心網友回復:
最后結果是什么?11337?uj5u.com熱心網友回復:
pids中匹配到了11337 全部回傳uj5u.com熱心網友回復:
select distinct * from 表名 where exists(
select * from (
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX('11111,11337,112333',',',help_topic_id+1),',',-1) AS num
FROM
mysql.help_topic
WHERE
help_topic_id < LENGTH('11111,11337,112333')-LENGTH(REPLACE('11111,11337,112333',',',''))+1)t1 where INSTR(pids,num)>0
)
uj5u.com熱心網友回復:
SELECT * FROM 表名 where FIND_IN_SET('11337',pids) ;uj5u.com熱心網友回復:
使用MYSQL函式 INSTR(欄位名, 字串)這個函式回傳字串在某一個欄位的內容中的位置, 沒有找到字串回傳0,否則回傳位置(從1開始)
SELECT * FROM 表名 ORDER BY INSTR( pids, '11337' ) > 0 ;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/41939.html
標籤:MySQL
上一篇:資料庫去重
下一篇:新人求助,指定查詢
