私は自分のSQLクエリでissuを持っています。 MySQLの各idには、1つまたは複数のタグがあります。 たとえば、id 1のタグの列には「110,2,3」があります。 id 2は "3,1100"です。 etc ... タグstringの各数字はグループです。 特定のグループからユーザーを選択する必要があります。SQL - 文字列のSELECT WHERE LIKE word1、word2など
だから私は、SQLで演算子のように使用してみました:
$query = $db->prepare(
"SELECT * FROM USERS WHERE taglist LIKE :id_groups OR :id_groups2 OR :id_groups3"
);
$query->execute([
"id_groups"=> $id_groups.",%",
"id_groups3"=> "%,".$id_groups,
"id_groups2"=> "%,".$id_groups.",%"
]);
しかし、私が望むように動作していません。たとえば、$ id_groupsを "3"に置き換えた場合は、上の例を使用します。それは、id 1がそのタグに "3"を持っていても、id 2ではなくid 1を選択するだけです。
最後に、文字列に数字が1つしかない場合はどうすればいいですか? "id_groups4" => $ id_groupsのORを追加すると、すべてのユーザーがこのグループに属していなくても返されます。
テーブルを再設計することはできますか?これが最高の答えですから。あなたのタグは、おそらくこのようなデータを解析する必要がないように、自分のテーブルに1対Nの関係でなければなりません。 –