mysql - 如何将 2 个数据库结果合并到一列中

标签 mysql sql

我有如下两列:

A  |  B
---|---
7  |  1
7  |  2
3  |  7
4  |  5
-------

我想得到 1 列包含 (1,2,3)。

目前我正在查询:

SELECT  `A` ,  `B` 
FROM  `mytable` 
WHERE  `A` =7
OR  `B` =7

但我在 A 和 B 两边都得到了包含数字 7 的 2 列。

我确定有一种方法可以获得我想要的东西,但我不知道如何用谷歌搜索!!

最佳答案

你可以使用这个:

SELECT
  case when A=7 then B else A end
FROM
  yourtable
WHERE
  7 IN (A, B)

如果你想要单列,你可以使用这个:

SELECT
  GROUP_CONCAT(case when A=7 then B else A end
               ORDER BY case when A=7 then B else A end)
FROM
  yourtable
WHERE 7 IN (A, B)

参见 fiddle here .

如果 A 和 B 的值可以同时为 7,并且您想跳过该行,您可以替换为:

WHERE 7 IN (A, B)

WHERE A=7 XOR B=7

关于mysql - 如何将 2 个数据库结果合并到一列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14853203/

相关文章:

MySQL 连接与先前连接的条件

sql - 将引用网址保存到数据库中

sql - SQL 中的子查询和连接

php - while()中的数据如何划分?

sql - 两个 SQL LEFT JOINS 产生不正确的结果

php - 尝试从我用 SQL 查询填充的选择字段中获取值

php - 如何在 Laravel 中进行条件数据库播种?

mysql - 数据库设计一张表或两张表

php - php Laravel与json类型数据的关系错误

sql - 这条sql语句的推荐写法是什么?