正規化されていないデータベースには、バッチという名前のテーブルがあります
テーブル batches には、複数の ID を持つフィールド student_ids があります。例えば1311, 1319, 1400
From: SELECT student_ids FROM バッチ WHERE 1311 IN(student_ids)
Student_id を取得します。1311, 1319, 1400
そして: SELECT student_ids FROM batches WHERE 1319 IN(1311, 1319, 1400)
正常に動作します:1311, 1319, 1400
しかし
SELECT student_ids FROM バッチ WHERE 1319 IN(student_ids)
また
SELECT @student_ids := Student_ids FROM バッチ b; SELECT Student_ids FROM バッチ WHERE FIND_IN_SET(1319, @student_ids)
戻り値Null
私は何が欠けていますか?最初の結果を配列に変換する必要があると思いますが、どうすればよいでしょうか?
私はDashの提案を試しました(Dashに感謝します)が、まだ問題があります
SELECT id FROM batches WHERE INSTR(','+1319+',', ','+CAST(student_ids AS CHAR) + ',') も試しました
Matt Ellen が別の投稿で提案したように - 最初の項目が一致する場合にのみ機能します