私は次のようにmm_testという名前のテーブルがあります: -
ID教育 1 3,4,6,8,9
この配列に(4,6)が含まれているかどうかをチェックしたい。 mysqlクエリを使用してこれを確認する方法。 Mysqlの "IN"コマンドが機能しません。
私はこのようにクエリを置きます...
mm_testから*を選択する。ここで、教育IN(4,6)。
しかし、このクエリは空の結果を返しました。どなたか助けてください。
回答:
回答№1の場合は7あなたはこれを使うことができます find_in_set()
:
where find_in_set(4, educations) > 0 and
find_in_set(6, educations) > 0
しかし、これは一般的に非効率的です。 問題はあなたのデータ構造です。非常に不適切なデータ構造体(文字列)に整数のリストを格納するのではなく、教育ごとに1つの列を持つジャンクションテーブルを使用する必要があります。
回答№2の場合は0
これを使って FIND_IN_SETマニュアル
SELECT *
FROM mm_test
WHERE FIND_IN_SET(4, educations) > 0
AND FIND_IN_SET(6, educations) > 0;