首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL if语句与where子句一起使用

问MySQL if语句与where子句一起使用
EN

Stack Overflow用户
提问于 2015-12-24 18:53:43
回答 3查看 44关注 0票数 0

如何向查询中添加其他WHERE子句。有这样的查询:

代码语言:javascript
复制
SELECT round(Sum(Zarada), 2) AS Zarada, 
       cms_cart_customers.Firstname,
       cms_cart_wallet.WalletType as WW ,
       cms_cart_customers.Lastname, 
       FROM_UNIXTIME(`cms_cart_customers`.`d_ins`, " %d.%m.%Y") AS Datum_formatiran 
  FROM (cms_cart_customers) 
  LEFT JOIN cms_cart_wallet
    ON cms_cart_wallet.IdBuyer =cms_cart_customers.Id 
  WHERE `cms_cart_customers`.`IDReferral` = '199' AND
        if(ww = 7) THEN ' cms_cart_wallet.WalletType =7' END IF 
  GROUP BY cms_cart_customers.Id

如果选择cms_cart_wallet.WalletType作为Ww,则添加新的额外子句,其中cms_cart_wallet.WalletType为7。这样做是可能的吗?

EN

回答 3

Stack Overflow用户

发布于 2015-12-24 19:13:01

您可以通过在left join on条件中再添加一个子句来完成此操作,如下所示。

代码语言:javascript
复制
SELECT round(Sum(Zarada), 2) AS Zarada, cms_cart_customers.Firstname,cms_cart_wallet.WalletType as WW ,cms_cart_customers.Lastname, FROM_UNIXTIME(cms_cart_customers.d_ins, " %d.%m.%Y") AS Datum_formatiran FROM (cms_cart_customers) LEFT JOIN cms_cart_wallet ON cms_cart_wallet.IdBuyer =cms_cart_customers.Id and cms_cart_wallet.WalletType =7 WHERE cms_cart_customers.IDReferral = '199'  GROUP BY cms_cart_customers.Id
票数 0
EN

Stack Overflow用户

发布于 2015-12-24 19:39:48

您可以直接在where子句中添加它,而不使用任何别名。

SELECT round(Sum(Zarada),2) as Zarada,cms_cart_customers.Firstname,cms_cart_wallet.WalletType AS WW,cms_cart_customers.Lastname,FROM_UNIXTIME(cms_cart_customers.d_ins,“%d.%m.%Y") AS Datum_formatiran FROM (cms_cart_customers) LEFT JOIN cms_cart_wallet ON cms_cart_wallet.IdBuyer =cms_cart_customers.Id WHERE cms_cart_customers.IDReferral = '199‘and cms_cart_wallet.WalletType =7 GROUP BY cms_cart_customers.Id

票数 0
EN

Stack Overflow用户

发布于 2015-12-24 21:13:16

你不需要if来做这件事。简单的条件逻辑就足够了:

代码语言:javascript
复制
  WHERE cms_cart_customers.IDReferral = '199' AND
        (ww <> 7 or cms_cart_wallet.WalletType = 7)

要处理NULL值:

代码语言:javascript
复制
  WHERE cms_cart_customers.IDReferral = '199' AND
        (COALESCE(ww, 0) <> 7 or cms_cart_wallet.WalletType = 7)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34451640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档