从db获取唯一数据

时间:2013-10-07 12:32:24

标签: php mysql unique

我在名为“users”的表中有一个名为“alerts”的数据库列,其中输入了每个用户的警报数据,如;

UserA -> 1,2,3,4,5,6
UserB -> 33,44,22
UserC -> 333,444,555

逗号分隔的数字是pid(帖子ID)

现在我想要获取具有某个“pid”的用户,例如444

我正在使用此查询;

$query = $db->query("SELECT uid FROM users WHERE alerts LIKE '%{$pid}%'");
$uid = $db->fetch_array($query);

现在问题是,它确实提取用户但不是唯一的。例如,如果我正在搜索pid = 444,那么它将获取警报列中具有“4”的所有用户。我该如何寻找独特的用户?

2 个答案:

答案 0 :(得分:3)

使用它:

$query = $db->query("SELECT uid FROM users WHERE FIND_IN_SET('{$pid}',alerts);

FIND_IN_SET(str,strlist)

答案 1 :(得分:0)

好吧,如果你无法修复你的设计以摆脱多值列。

喜欢'4'或喜欢'4,%'或喜欢'%,4'或类似'%,4'会这样做。

现在你知道为什么更有经验的开发人员在看到有人再犯这个错误时会畏缩不前......