WHERE或multiple使用MYSQL

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 . '';

我对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 . '';  

//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"';