mysql的条件语句_MySQL条件语句

博客讨论了一个复杂的SQL查询,该查询用于从多个表中检索订单信息,包括菜品名称和价格的组合,以及儿童和组织信息。作者面临的问题是,在GROUP_CONCAT中,只有当menu_items.price大于0时,才希望包含CONCAT。尝试使用IF函数进行条件判断未果,寻求解决方案。
摘要由CSDN通过智能技术生成

好的,所以我有一个如下所示的查询:

SELECT

`orders`.*,

GROUP_CONCAT(

CONCAT(

`menu_items`.`name`,

' ($',

FORMAT(`menu_items`.`price`,2),

')'

) SEPARATOR '
'

) as `items`,

SUM(`menu_items`.`price`) as `additional`,

`children`.`first_name`,

`children`.`last_name`,

`organizations`.`base_price`

FROM

`orders`, `order_items`, `menu_items`, `children`, `organizations`

WHERE

`order_items`.`menu_item_id` = `menu_items`.`id` AND

`order_items`.`order_id` = `orders`.`id` AND

`orders`.`added_by` = {$user_id} AND

`orders`.`date` > '{$cutoff}' AND

`children`.`id` = `orders`.`child_id` AND

`organizations`.`id` = `children`.`organization_id`

GROUP BY

`orders`.`id`我知道这是一个怪物,有些人会在不使用显式连接之前死亡。但是,如果menu_items.price大于0,我只想使用GROUP_CONCAT中的CONCAT,否则只会返回menu_items.name。然而,我试图在这里抛出IF没有成功。我已经阅读了手册,但是我尝试过的所有方法都无法正常工作,我很确定我在整个条件语句中缺少一些东西。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值