我的问题是我在数据库中有一个字段有多个vaue例如我有一个表名称是用户,其中我有两个字段一个是id而另一个字段是爱好。表结构是这样的: 用户表:
id hobbies
-------- -------------
1 1,2
2 2
3 2,3
爱好表:
id hobbies
-------- -------------
1 singing
2 dancing
3 reading
现在我的问题是我希望所有用户从爱好表中跳过id为2的爱好。但是我的查询只是给用户3输出这是错误的,这是我的PHP代码:
$scheck = $_REQUEST['scheck'];//$scheck is array of hobbies like 1,2
if (!empty($scheck)) {
if (strstr($scheck, ',')) {
$data3 = explode(',', $scheck);
$sarray = array();
foreach ($data3 as $c) {
$sarray[] = "t1.hobbies = $c";
}
$WHERE[] = '(' . implode(' OR ', $sarray) . ')';
$inner = ' JOIN hobbies AS t3 ON t1.hobbies = t3.id ';
} else {
$WHERE[] = '(t1.hobbies = ' . $scheck . ')';
$inner = ' JOIN hobbies AS t3 ON t1.hobbies = t3.id ';
}
}
$w = implode(' AND ', $WHERE);
if (!empty($w)) $w = 'WHERE ' . $w;
$query = mysql_query("SELECT DISTINCT t1 . * FROM `users` AS t1 $inner $w
请为我的问题提供一些解决方案。
答案 0 :(得分:2)
列业余爱好的用户表的数据类型是什么。 我想如果它的varchar然后查询写入将是困难的。
我的建议将为用户和爱好关系创建一个新表,为每个爱好添加多个用户条目。
感谢