[英]MySQL execute SELECT based on condition
如何根據用戶輸入適當地使用CASE執行SELECT查詢?
執行以下查詢時:
SELECT
CASE WHEN user_input_variable = 'y' THEN
(SELECT * FROM table_foo WHERE bar = '6f322766-0ec0-4d24-840f-c857a82a6efe')
ELSE
(SELECT 0)
END
如果用戶選擇了“y”,那么它應該從表中返回記錄,否則它應該返回一個空的結果集。
我收到錯誤:
操作數應包含1列
子查詢必須返回不超過1列。 改為使用UNION ALL。
請注意,列數必須相同,這就是您需要在第二個選擇中選擇null的原因。
SELECT * FROM table_foo WHERE bar = '6f322766-0ec0-4d24-840f-c857a82a6efe')
and user_input_variable = 'y'
union all
SELECT 0, null, null... where user_input_variable <> 'y'
您也可以使用IF條件。
IF user_input_variable = 'y'
SELECT * FROM table_foo WHERE bar = '6f322766-0ec0-4d24-840f-c857a82a6efe')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.