MySQL根据条件执行SELECT

时间:2019-04-16 13:21:37

标签: mysql sql

如何正确使用CASE来根据用户输入执行SELECT查询?

在执行以下查询时:

admin role

如果用户选择了“ y”,则它应从表中返回记录,否则应返回空结果集。

我遇到错误:

  

操作数应包含1列

2 个答案:

答案 0 :(得分:3)

子查询必须返回不超过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' 

答案 1 :(得分:0)

您也可以使用IF条件。

IF user_input_variable = 'y'
    SELECT * FROM table_foo WHERE bar = '6f322766-0ec0-4d24-840f-c857a82a6efe')