写条件选择语句

时间:2014-06-12 12:53:05

标签: mysql select conditional pseudocode

下面伪代码的MySQL语法是什么?

    Integer x = 0;
    String y = "ABC";

    IF (x equals 0) then
    SELECT * FROM table_x
    ELSE 
    SELECT * FROM table_y

1 个答案:

答案 0 :(得分:1)

您可以将UNION ALL用于两个查询;当x为0时,只返回一行;当x不为0时,其他只返回行:

SET @x = 0;

SELECT * FROM table_x where @x = 0
UNION ALL
SELECT * FROM table_y where @x <> 0;

这仅适用于两个表中的列相同的情况。使用列名而不是*以确保选择相同的列集。如果要从两个表中选择不同的列(列的数量或类型不同),则不能编写一个查询,因为查询必须始终返回相同数量和类型的列。

SELECT dept_no, dept_name FROM table_x where @x = 0
UNION ALL
SELECT department_number, name FROM table_y where @x <> 0;
相关问题