我有这个:
$string = "battery,lighter,phone";
我有一个users
包含每个用户标签的表。
如何select
使用 sqlwhere tags = $string
和where email = '$usermail'
;
我只想检索基于user email
和user stored tags
在表格中用逗号分隔的数据,如上面的字符串
如果您只选择一个标签,您可以使用
select bits where tag like '%select_value' and email = 'email_value'
如果您需要挑选多个标签,则需要解析 csv。这是一个更大的挑战。
答案已更新:鉴于其他评论中列出的表格:
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”的所有产品。
让我知道这是否适合你,
约翰...