LIKE 句を使用した SELECT クエリに問題があります。特定の 1 つのフィールドにカテゴリ ID を持つすべてのレコードを取得する必要があります。すべてのカテゴリ ID は次のように保存されます。
1;2;4;11;12;22;32;
何が起こっているかというと、次のクエリ
SELECT * FROM
mytable
WHEREcatids
LIKE '%2;%'
カテゴリ ID 2 を持つすべてのレコードを選択しますが、カテゴリ 12、22、32 などのレコードも選択します。残念ながら、カテゴリ ID を格納するコードは変更できず、番号 2 は変数から読み取られます。その横に NOT LIKE 句を使用してみましたが、12、22、32、42 などを避けるために 10 回繰り返すことはできません...
空または ; でも数じゃない?上記の例で取得するカテゴリ ID が 1 の場合、文字列は数字の 1 で始まるため (左側に ; はありません)、11 も取得します。
ありがとうございました