我想知道是否有可能以优雅的方式根据某些变量值缩短查询.
例如:我有一个名为$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'
如果我理解得好..
原文链接:https://www.f2er.com/php/137913.html$query = "SELECT id,quantity FROM products WHERE quantity > 100"; if ( $var != 0 ) { $query .= " AND id = '$var'"; }
你喜欢它吗?