php – mysql – if value = 0缩短where语句

前端之家收集整理的这篇文章主要介绍了php – mysql – if value = 0缩短where语句前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道是否有可能以优雅的方式根据某些变量值缩短查询.

例如:我有一个名为$var = 0的值,我想发送一个如下所示的查询

$query = "SELECT id,name,quantity FROM products WHERE quantity > 100";

但是$var!= 1我想发送一个这样的查询

$query = "SELECT id,quantity FROM products WHERE quantity > 100 AND id = '$var'";

因此,根据$var的值,我想执行一个查询.它们仅与最后一个表达不同.
我发现了两种可能的解决方案,但它们并不优雅,我根本不喜欢它们.

一个是用PHP制作的:

if ( $var == 0 ) {
  $query_without_second_expression
} else {
  $query_with_second_expression
}

第二个是在MysqL中制作的:

SELECT WHEN '$var' <> 0 THEN id,quantity 
FROM products WHERE quantity > 100 AND id = '$var' ELSE id,quantity 
FROM products WHERE quantity > 100 END

但我不喜欢它 – 每个想法都会在某些问题中加倍查询.我可以这样做吗?

SELECT id,quantity 
FROM products WHERE quantity > 100 
CASE WHEN $var <> 0 THEN AND id = '$var'

它更短,并在需要时添加部分查询.当然,真正的查询要复杂得多,并且真正期望更短的语句.有人有想法吗?

如果我理解得好..
$query = "SELECT id,quantity FROM products WHERE quantity > 100";
if ( $var != 0 ) {
  $query .= " AND id = '$var'";
}

你喜欢它吗?

原文链接:https://www.f2er.com/php/137913.html

猜你在找的PHP相关文章