Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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
Php 使用或在SQL WHERE子句中使用多个条件_Php_Sql_Select_Where Clause - Fatal编程技术网

Php 使用或在SQL WHERE子句中使用多个条件

Php 使用或在SQL WHERE子句中使用多个条件,php,sql,select,where-clause,Php,Sql,Select,Where Clause,我的PHP代码中有以下SQL语句: $strSQL = "SELECT * FROM coaches WHERE pastors='1' OR all_categories='1' ORDER BY l_name"; 但是OR后面的WHERE部分被忽略。我的代码正确吗?有更好的编码方法吗 我试图让它选择数据库条目,如果在一个特定的类别中有一个1,在这个例子中是“牧师”,或者如果在“所有类别”类别中有一个1 从外观上看,您的代码就是这样做的 你只是在结尾忘了ASC或DESC 它应该更像这样: $

我的PHP代码中有以下SQL语句:

$strSQL = "SELECT * FROM coaches WHERE pastors='1' OR all_categories='1' ORDER BY l_name";
但是OR后面的WHERE部分被忽略。我的代码正确吗?有更好的编码方法吗


我试图让它选择数据库条目,如果在一个特定的类别中有一个1,在这个例子中是“牧师”,或者如果在“所有类别”类别中有一个1

从外观上看,您的代码就是这样做的

你只是在结尾忘了ASC或DESC

它应该更像这样:

$strSQL = "SELECT * FROM coaches WHERE pastors='1' OR all_categories='1' ORDER BY l_name ASC";

谢谢你的建议。尽管人们说它应该起作用,但出于某种原因,它没有起作用。最简单的解决方案是,对于那些想要进入所有类别的个人,只需将每个true/false设置为1,而不是试图对抗看起来正确但不起作用的OR。

这不会被忽略-这会导致任何没有pastors=1但有all_categories=1的记录被包括在结果集中。你想完成什么?这个查询在其他方面很好。我试图让它选择数据库条目,如果某个特定类别中有1,在本例中是“pastors”,或者如果“all_categories”类别中有1。基本上,有些人并不特别,他们希望被列在任何地方。在这一点上,我想知道对于这些人来说,是否最好在所有类别中都加上1。对于两个简单的条件,括号是不必要的。不要修改它,在所有类别中都加上“1”——你的数据应该总是尽可能准确地表示出来,否则你以后会后悔的。为什么你觉得这个代码不起作用?这将正确选择两个记录组(如果您的记录在字段中)。我认为您在其他地方有错误(或者记录在列中没有精确的“1”,等等)。正如其他人所说,您的查询没有任何错误。未忽略
。你的问题肯定完全是另一回事。不幸的是,你的问题中没有包括其他东西。因此,您不会得到任何有帮助的答案。为什么您觉得有必要使用括号?在这种情况下,括号是不必要的。除非where语句中有其他条件(例如
),否则括号是完全不必要的(请注意,它们在其他情况下可能有用).您不必在末尾“需要”ASC或DESC。如果ommited MySQL采用ASC。