Php& MySql从逗号分隔的字符串中选择

时间:2012-11-03 11:28:01

标签: php mysql

我有这个:

$string = "battery,lighter,phone";

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

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

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

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分: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'的所有产品。

让我知道这是否适合您,

...约翰