mysql - 如何仅在某些情况下应用 UNION (MySQL)

标签 mysql

我有以下 - 简化 - 查询:

SELECT id
FROM table_x
UNION ALL 
SELECT 0 AS id

但是,我只想附加 UNION 部分,以防查询的第一部分返回至少 1 个结果,例如:

table_x 包含一个条目 (id = 1):

table_x: 1
Current and desired result: 1, 0

table_x 为空:

table_x: empty
Current result: 0
Desired result: empty

有什么办法可以在查询中实现这一点吗?预先非常感谢您。

最佳答案

只要您的表存在。你可以做这样的事情。

SELECT
IF ( a is NULL, NULL, CONCAT(a,",",b))
FROM(
SELECT
  (SELECT * From myTable WHERE id = 2) a
  ,(SELECT 0) b
  ) C

结果为空

id = 1 的结果 将会是

IF ( a is NULL, NULL, CONCAT(a,",",b))
1,0

关于mysql - 如何仅在某些情况下应用 UNION (MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58312957/

相关文章:

php - 数据库搜索错误中的 session 变量解析错误 : syntax error, 意外

sql - 需要一个专注于表组合的 SQL 语句,但条目始终具有唯一 ID

php - 设置默认用户名并与 ID 连接

php - 如何使用 PHP 将两个字段中的值相除并将结果插入到另一个字段中

MySql 自动 TIME_STAMP 不工作

mysql - 存储数周的扩展数据

mysql - mysql 上的完全外连接?

php - codeigniter 数据库查询替换为现有的

php - 如何从 PHP myadim 数据库检索图像并在 android ListView 中显示?

mysql - 在 BETWEEN 不工作 mysql 之后使用 OR 条件