[英]Satisfied condition
使用“ OR”进行MySql PHP查询时,如何知道两个条件中的哪一个已得到满足?
例:
if($mysql->query("SELECT * FROM `table` WHERE cpf = '0' OR state = '0'")->fetch_assoc()){
//Which was satisfied?
}
请记住,在这些查询中的每个查询中最多只能有2条记录。
我考虑过这样做:
if($th = $mysql->query("SELECT * FROM `table` WHERE cpf = '0' OR state = '0'")->fetch_assoc()){
while($row = $th){
if($row['cpf'] == "0"){
echo "CPF";
}else if($row['state'] == "0"){
echo "state";
}
}
}
但是,没有做到这一点的“正确”方法吗? 不需要这些if吗?
必须检查从执行查询得到的结果数组。
if($row = $mysql->query("SELECT * FROM `table` WHERE cpf = '0' OR state = '0'")->fetch_assoc()){
if ($row['cpf'] == 0) { /* cpf satisfied*/ }
if ($row['state'] == 0) { /* state satisfied*/ }
}
给您的一个小建议:尝试使用$mysqli
不是$mysql
您还可以检查以下内容:
SELECT *,
(CASE WHEN cpf = '0' THEN 'cpf satisfied'
WHEN state = '0' THEN 'state satisfied' END) AS satisfied
FROM `table` WHERE cpf = '0' OR state = '0'
您不能真正知道两个条件中的哪个已被满足。 如果您想知道,则必须单独执行它们,如下所示:
if($mysql->query("SELECT * FROM `table` WHERE cpf = '0'")->fetch_assoc()){
//cpf = 0 was satisfied
}
if($mysql->query("SELECT * FROM `table` WHERE state = '0'")->fetch_assoc()){
//state = 0 was satisfied
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.