mysql
  • database
  • computer-science
  • 2012-06-16 56 views 4 likes 
    4

    我在周一为Comp Science项目工作,我遇到了一个有关查询的MySQL问题。MySQL查询AND OR运算符逻辑

    我想通过文字实现的是这个。

    如果列为=杰克和列从=康纳 OR 列=康纳和列从杰克=从特定表得到CID。

    我有什么到目前为止,这是

    $query="SELECT cID FROM conversation WHERE to='$to' AND to='$from' OR to='$from' AND  from='$to'"; 
    

    有什么我可以做的就是此查询工作? 在此先感谢!

    回答

    11

    你只需要的()一对夫妇对来组这两个条件对,由逻辑OR

    $query=" 
        SELECT cID 
        FROM conversation 
        WHERE 
         /* to Jake, from Connor */ 
        (`to`='$to' AND `from`='$from') 
         /* OR to connor, from jake */ 
        OR (`to`='$from' AND `from`='$to')"; 
    

    注分开:FROMTO都是MySQL reserved keyword,因此需要用反引号引用。

    +0

    @MarkByers是的,报价,谢谢。 “TO”也被保留。 –

    +0

    The Op也应该逃避$ to和$ from变量 –

    +0

    @JeromeWAGNER你不知道他没有。 –

    1

    这是未经测试的,但我认为你需要把to ='$ to'和to ='$ from'(这应该是从不是我想的??)到括号内?

    刚刚意识到别人把这个作为我打字它

    +0

    这可能是真的,因为它取决于初始值放在数据库的哪一侧,它不是e ffieicne,但这是我目前所了解的。 – ronnockoch

    +0

    哦,别介意,我明白你的意思LAdaRaider – ronnockoch

    +0

    我在评论中说过,我认为它应该是从而不是! – Stefan

    0
    $query="SELECT cID FROM conversation WHERE 
    (to='$to' OR to='$from' OR to='$from') AND from='$to'"; 
    
    +0

    我再次得到这个查询的MySQL错误 你的SQL语法错误;检查与您的MySQL服务器版本相对应的手册,以便在'to ='5'或'to'='1'或to ='1'附近使用正确的语法)AND from ='5'at line 2 – ronnockoch

    +0

    我建议你与上面的答案一起去,更好,并遵循这些评论。 – Tschallacka

    +0

    -1使用保留字 – Steve

    相关问题