WHERE或multiple使用MYSQL
我对MYSQL查询的语法感到非常困惑 这是正确的吗。。。在internet上找不到类似的条目WHERE或multiple使用MYSQL,mysql,where,Mysql,Where,我对MYSQL查询的语法感到非常困惑 这是正确的吗。。。在internet上找不到类似的条目 $query_game_string = ''; while($game = mysql_fetch_assoc($get_game_list)){ $query_game_string .= ' OR target = "' . $game['id'] . '" AND ancestors = "0"'; } echo '' . $query_game_string . '';
$query_game_string = '';
while($game = mysql_fetch_assoc($get_game_list)){
$query_game_string .= ' OR target = "' . $game['id'] . '" AND ancestors = "0"';
}
echo '' . $query_game_string . '';
//prints: OR target = "11" AND ancestors = "0" OR target = "12" AND ancestors = "0" OR target = "27" AND ancestors = "0" OR target = "29" AND ancestors = "0" OR target = "32" AND ancestors = "0"
$database->connect();
$comments = mysql_query(
'SELECT *
FROM ' . $database->db_prefix . 'comments
WHERE user_id = "' . $user->user_object["id"] . '"' .
$query_game_string . '
ORDER BY created DESC'
, $database->connection_handle);
$database->close();
因此,实际查询的总数为:
'SELECT *
FROM ' . $database->db_prefix . 'comments
WHERE user_id = "' . $user->user_object["id"] . '"' .
'OR target = "11" AND ancestors = "0" OR target = "12" AND ancestors = "0" OR target = "27" AND ancestors = "0" OR target = "29" AND ancestors = "0" OR target = "32" AND ancestors = "0"' . '
ORDER BY created DESC'
语法正确吗?不知道要查找什么,但可能需要括号:
OR (target = "11" AND ancestors = "0")
OR (target = "12" AND ancestors = "0")
OR (target = "27" AND ancestors = "0")
OR (target = "29" AND ancestors = "0")
OR (target = "32" AND ancestors = "0")
要实现这一点:
while($game = mysql_fetch_assoc($get_game_list))
{
$query_game_string .= ' OR (target = "' . $game['id'] . '" AND ancestors = "0")';
}
简化查询的一种方法是在操作数中使用
php:
也许你的意思是将这些组包含在或target=11和祖先=0或target=12和祖先=0中…\n但所有这些都简化了,因为祖先=0在11,12,27,29,32和祖先=0中成为目标。感谢上帝。我喜欢这条路!那太性感了!谢谢你,好先生!
OR target IN("11","12","27","29","32") AND ancestors = "0"
$targets = array();
while($game = mysql_fetch_assoc($get_game_list))
{
$targets[] = '"'.$game['id'].'"';
}
$query_game_string = ' OR target IN (' . implode(",",$targets) . ') AND ancestors = "0"';