-2

我有这个:

$string = "battery,lighter,phone";

我有一个users包含每个用户标签的表。

如何select使用 sqlwhere tags = $stringwhere email = '$usermail';

我只想检索基于user emailuser stored tags在表格中用逗号分隔的数据,如上面的字符串

4

2 回答 2

0

如果您只选择一个标签,您可以使用

 select bits where tag like '%select_value' and email = 'email_value'

如果您需要挑选多个标签,则需要解析 csv。这是一个更大的挑战。

于 2012-11-03T11:54:07.643 回答
0

答案已更新:鉴于其他评论中列出的表格:

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”的所有产品。

让我知道这是否适合你,

约翰...

于 2012-11-03T16:45:28.503 回答