加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 13:35:03 所属栏目:PHP教程 来源:网络整理
导读:我想知道是否有可能以优雅的方式根据某些变量值缩短查询. 例如:我有一个名为$var = 0的值,我想发送一个如下所示的查询: $query = "SELECT id,name,quantity FROM products WHERE quantity 100"; 但是$var!= 1我想发送一个这样的查询: $query = "SELECT i
我想知道是否有可能以优雅的方式根据某些变量值缩短查询.

例如:我有一个名为$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'";
}

你喜欢它吗?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读