具有多个where条件的同一列的else mysql时的情况
我有一个数据表。我试图使用case-when-mysql查询根据同一列的三个where条件获取数据。 但没有给出预期的结果。 我的桌子:具有多个where条件的同一列的else mysql时的情况,mysql,case,Mysql,Case,我有一个数据表。我试图使用case-when-mysql查询根据同一列的三个where条件获取数据。 但没有给出预期的结果。 我的桌子: id bundle_id asset_id price_id customer_id weekday_am weekend_am 1 1 1 1 100.00 120.00 2 1 2
id bundle_id asset_id price_id customer_id weekday_am weekend_am
1 1 1 1 100.00 120.00
2 1 2 1 150.00 140.00
3 1 1 1 0.00 0.00
4 1 1 2 0.00 145.00
5 1 2 2 140.00 0.00
6 1 1 2 0.00 0.00
7 1 1 3 5 140.00 120.00
8 1 2 3 5 0.00 140.00
9 1 1 3 5 130.00 0.00
我希望结果的格式如下所示
bundle_id asset_id weekday_am weekend_am
1 1 140.00 120.00
1 2 150.00 140.00
1 1 130.00 0.00
但我的查询不起作用:
SELECT bundle_id,asset_id ,
(CASE
WHEN weekday_am IS NULL or weekday_am = 0.00 where customer_id = 5 and price_id = 3 THEN weekday_am
WHEN weekday_am IS NULL or weekday_am = 0.00 where price_id = 2 THEN weekday_am
ELSE weekday_am IS NULL or weekday_am = 0.00 where price_id = 1 THEN weekday_am
END as 'weekday_am'),(CASE
WHEN weekend_am IS NULL or weekend_am = 0.00 where customer_id = 5 and price_id = 3 THEN weekend_am
WHEN weekend_am IS NULL or weekend_am = 0.00 where price_id = 2 THEN weekend_am
ELSE weekend_am IS NULL or weekend_am = 0.00 where price_id = 1 THEN weekend_am
END as 'weekend_am')
FROM
bundle_prices where bundle_id = 1
谁能帮我一下吗?谢谢。尝试编辑
WHEN weekday_am IS NULL or weekday_am = 0.00 where customer_id = 5 and price_id = 3 THEN weekday_am
到
或
和weeken_am一样我得到的错误如下
错误代码:1064。您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第3行“where customer_cid=5且price_id=3 THEN weekday_am ELSE weekday_am IS NULL”附近使用的正确语法,其中customer id=5似乎就是您所需要的。如果没有,请参阅@草莓:是的,在customer_id=5处存在错误,我不知道如何解决此问题:(相同的错误错误代码:1064。您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,以了解在第3行“where customer_id=5且price_id=3 THEN weekday_am WHEN weekday_am IS NULL”附近使用的正确语法,但它现在给出了NULL值。我需要检查weekday_am
是否为h如果条件customer_id=5
和price_id=3
没有值,那么我必须检查条件price_id=2
,即使没有,我也需要检查条件price_id=1
在这种情况下我如何使用when-else条件?你怎么会在表中得到结果当条件为weekday_am为NULL或weekday_am=0.00时,如果条件为weekday_am为NULL或weekday_am=0.00,您将始终获得weekday_am为NULL或0.00的值。请再次检查您的条件。可能类似于weekday_am为NULL或weekday_am=0.00
WHEN weekday_am IS NULL or weekday_am = 0.00 and customer_id = 5 and price_id = 3 THEN weekday_am
ELSE weekday_am