在 where 条件下的 If-else - MySQL
If-else in where condition - MySQL
我有这样的数据
- PX01 , Dony, ASUS , Area1
- PX01 , Dony, ACER , Area1
- PX01 , Dony, SONY , Area1
- PX02 , ROKY, ASUS , Area2
- PX03 , Steve, ASUS , Area1
我想要 select 数据 IF(Area2) 只有 Asus,但是 if(Area1) Asus 和 SONY。
如何在查询的 where 部分写 if else。
样本
SELECT
.....
WHERE if(Area = 'Area1') { PRODUCT = ASUS AND SONY}
IF(Area = 'Area2' ) { PRODUCT = ASUS }
IF(Area = 'Area3' ) { PRODUCT = SONY }
SELECT {columns list}
FROM {table name}
WHERE CASE Area WHEN 'Area1' THEN Product IN ('ASUS', 'SONY')
WHEN 'Area2' THEN Product = 'ASUS'
WHEN 'Area3' THEN Product = 'SONY'
ELSE NULL
END;
我有这样的数据
- PX01 , Dony, ASUS , Area1
- PX01 , Dony, ACER , Area1
- PX01 , Dony, SONY , Area1
- PX02 , ROKY, ASUS , Area2
- PX03 , Steve, ASUS , Area1
我想要 select 数据 IF(Area2) 只有 Asus,但是 if(Area1) Asus 和 SONY。 如何在查询的 where 部分写 if else。
样本
SELECT
.....
WHERE if(Area = 'Area1') { PRODUCT = ASUS AND SONY}
IF(Area = 'Area2' ) { PRODUCT = ASUS }
IF(Area = 'Area3' ) { PRODUCT = SONY }
SELECT {columns list}
FROM {table name}
WHERE CASE Area WHEN 'Area1' THEN Product IN ('ASUS', 'SONY')
WHEN 'Area2' THEN Product = 'ASUS'
WHEN 'Area3' THEN Product = 'SONY'
ELSE NULL
END;