首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >其中OR和multiple使用MYSQL

其中OR和multiple使用MYSQL
EN

Stack Overflow用户
提问于 2012-06-07 04:55:11
回答 1查看 166关注 0票数 0

我对MYSQL查询的语法感到非常困惑。

这是正确的..。在互联网上找不到类似的条目。

代码语言:javascript
复制
$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();

因此,实际的查询应该是:

代码语言:javascript
复制
'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'

语法没问题吧?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-07 04:59:19

不知道你到底在找什么,但你可能需要括号:

代码语言:javascript
复制
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")

php来实现这一点:

代码语言:javascript
复制
while($game = mysql_fetch_assoc($get_game_list))
{
    $query_game_string .= ' OR (target = "' . $game['id'] . '" AND ancestors = "0")';   
}

简化查询的一种方法是使用IN操作数

代码语言:javascript
复制
 OR target IN("11","12","27","29","32") AND ancestors = "0"

php:

代码语言:javascript
复制
$targets = array();
while($game = mysql_fetch_assoc($get_game_list))
{
    $targets[] = '"'.$game['id'].'"';   
}
$query_game_string = ' OR target IN (' . implode(",",$targets) . ') AND ancestors = "0"';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10922150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档