Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL查询和或运算符逻辑 我在星期一的我的COMP科学项目的一个项目中,我遇到了一个关于查询的MySQL问题。_Mysql_Database_Computer Science - Fatal编程技术网

MySQL查询和或运算符逻辑 我在星期一的我的COMP科学项目的一个项目中,我遇到了一个关于查询的MySQL问题。

MySQL查询和或运算符逻辑 我在星期一的我的COMP科学项目的一个项目中,我遇到了一个关于查询的MySQL问题。,mysql,database,computer-science,Mysql,Database,Computer Science,我想通过语言实现的是这一点 如果列to=jake和列from=connor或列to=connor和列from=jake从该特定表中获取cID 到目前为止,我得到的是这个 $query="SELECT cID FROM conversation WHERE to='$to' AND to='$from' OR to='$from' AND from='$to'"; 我可以做些什么来让这个查询工作? 提前谢谢 您只需要一对()就可以对两个条件对进行分组,并用逻辑或分隔 $query

我想通过语言实现的是这一点

如果列to=jake和列from=connor列to=connor和列from=jake从该特定表中获取cID

到目前为止,我得到的是这个

 $query="SELECT cID FROM conversation WHERE to='$to' AND to='$from' OR to='$from' AND        from='$to'";
我可以做些什么来让这个查询工作?
提前谢谢

您只需要一对
()
就可以对两个条件对进行分组,并用逻辑
分隔

$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')";

注意:
FROM
TO
都是,因此需要用反勾号引用。

这是未经测试的,但我认为您需要将TO='$TO'和TO='$FROM'(我猜应该是从到不是??)放在括号中


我刚意识到有人在我打字时放了这个

Op也应该避开$to和$fromvariables@JeromeWAGNER“你不知道他没有。”迈克尔说,他在括号里没打好。他可能逃跑失败了。他最好还是写一个关于转义的注释。我可能转义变量失败了,从会话中获取变量,而不用于脚本中的任何其他内容,这有什么区别吗?(获取变量并在查询中处理它们是页面上唯一要做的事情。括号中没有失败。
的优先级高于
。这可能是真的,因为它取决于初始值从哪一方输入数据库,这并不有效,但这是我目前理解的。我确实说过在我认为应该是from而不是to的评论中!!我再次发现这个查询中的MySQL错误您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解在第2行的“to='5'或to='1'或to='1')和from='5'附近使用的正确语法,我建议您使用我上面的答案,这样更好,并遵循这些评论。
$query="SELECT cID FROM conversation WHERE 
(to='$to' OR to='$from' OR to='$from') AND from='$to'";