私はこれを持っています:
$string = "battery,lighter,phone";
users
各ユーザーのタグを持つテーブルがあります。
select
SQLwhere tags = $string
とwhere email = '$usermail'
;をどのように使用できますか。
上記の文字列のように、テーブル内のコンマで区切られた に基づいuser email
てデータを取得したいだけですuser stored tags
回答の更新:別のコメントにリストされているテーブルを考えると:
SELECT p.id, p.p_title, p.categoryname, u.id, u.user_email, u.my_choices
FROM users u
JOIN products p
ON FIND_IN_SET(p.categoryname, u.my_choices)
WHERE u.email = 'email_value'
MySQL には、目的に合ったFIND_IN_SET()関数があります。この特定のケースでは、ユーザーの「my_choices」内に「categoryname」を持つすべての製品が返されます。
これがうまくいくかどうか教えてください。
ジョン...
使用できるタグを 1 つだけ選択する場合
select bits where tag like '%select_value' and email = 'email_value'
複数のタグを選択する必要がある場合は、csv を解析する必要があります。それはより大きな課題です。