これが私の疑似クエリです:
SELECT col1, col2 FROM table WHERE number IN(number1,number2,number3);
例
SELECT name, description FROM products WHERE 5 IN(category_id);
注: テーブルの行の 1 つにcategory_id = 2,5,7があると仮定しましょう
問題
私のクエリは、次のように行のコンマ区切りセットの先頭に「5」がある場合に機能します: 5,2,7 しかし、行が 5 以外で始まる場合、同じクエリは結果を返しません。
さまざまなシナリオを試してみましたが、mysql がコンマに遭遇すると、コンマで区切られた数字への一致をチェックしていないように常に見えます。
適切にフォーマットされたカンマ区切りの文字列や照合順序など、意味のあるものはすべてチェックしました。この時点で私を困惑させています。解決策はありますか?
FIND_IN_SET()
私が使用し、それが完璧に機能したことに注意してください。IN()
とはいえ、何が本当の問題なのか分からないまま捨ててしまうのはもったいないです。最初の遭遇で止まるのはなぜですか fa カンマ.