簡體   English   中英

替換 mysql where 子句中的邏輯運算符

[英]replace the logical operator in mysql where clause

如果我想在 select 查詢的 where 子句中的某些條件下更改邏輯運算符 AND,OR 該怎么辦。

例如

select * from table t where t.column='something' AND t.column='something'

select * from table t where t.column='something' OR t.column='something'

我試過的:

select * from table t where t.column='something' 
case some_variable 
when  some_variable='' THEN OR
ELSE AND
END
t.column='something'

但它會在 case 子句附近引發語法錯誤。 請指教。

編輯:樣本小提琴

以下已成功運行。

select
DISTINCT

`car_detail`.`car_detail_id` as "Car ID.",
`car_detail`.`status` as "Status"

FROM 
`car_detail`

LEFT JOIN `car_reservation_detail` ON car_reservation_detail.car_detail_id=car_detail.car_detail_id


WHERE
(case when car_status='' then (car_detail.status='active' OR car_detail.status='reserved') OR (`car_reservation_detail`.employee_detail_id = emp_id AND     (`car_detail`.`status` = 'sold' or `car_detail`.`status` = 'sure'))
 else 
  (`car_reservation_detail`.employee_detail_id = emp_id AND     `car_detail`.`status` = car_status AND `car_reservation_detail`.`status`='active')
 end)
;

數據庫小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM