我有如下两列:
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/