【问题标题】:writing conditional select statements编写条件选择语句
【发布时间】:2014-06-12 12:53:05
【问题描述】:

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

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

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

【问题讨论】:

  • 我猜因为 x=0... SELECT * FROM table_x

标签: mysql select conditional pseudocode


【解决方案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;

【讨论】:

    猜你喜欢
    • 2010-12-11
    • 2017-02-03
    • 2013-10-04
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多