未標準化的數據庫有一個名爲批次的表格WHERE-IN或FIND_IN_SET
表格批次具有帶有多個ID的字段student_id。例如1311, 1319, 1400
來源:SELECT student_ids FROM批次WHERE 1311(student_ids)
我們得到student_ids:1311, 1319, 1400
和:SELECT student_ids FROM批次WHERE 1319(1311,1319,1400)
工作正常:1311, 1319, 1400
但
執行SELECT tudent_ids FROM批次WHERE 1319 IN(student_ids)
或
SELECT @student_ids:= student_ids FROM批料B; 選擇student_ids FROM批次WHERE FIND_IN_SET(1319,@student_ids)
回報Null
我缺少什麼?我想我必須將第一個結果轉換爲數組 - 但是如何?
我已經試過Dash的建議(非常感謝DASH),但我仍然有麻煩
我也試過 SELECT ID FROM批次 WHERE INSTR(', '+ 1319+',', ' '+ CAST(student_ids AS CHAR)+',')
上另一篇文章中建議由馬特·艾倫 - 再僅僅在進行第一項匹配
哇,感謝您的即時響應。不幸的是,這隻適用於第一個ID 1311 - 如果你嘗試1319,你會得到空。 – apwatts 2012-08-08 10:24:35
嘗試新的查詢。它應該像'student_ids IN(1319)'嘗試使用修剪。 – Omesh 2012-08-08 10:29:49
尚不完全:字段student_ids是varchar,數據爲'1311,1319,1400',但IN函數無法看到第一個項目。 – apwatts 2012-08-08 10:40:46