我有2列如下:
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 两边都有 2 列包含数字 7。
我确定有办法得到我想要的,但我不知道如何用谷歌搜索!!
你可以使用这个:
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)
在这里看小提琴。
如果 A 和 B 的值可以同时为 7,并且您想跳过该行,则可以替换:
WHERE 7 IN (A, B)
和
WHERE A=7 XOR B=7
不太确定你需要什么,但我猜是这样的:
SELECT A FROM mytable WHERE B=7
UNION
SELECT B FROM mytable WHERE A=7
我想你在找这个
SELECT myresult from (
SELECT A myresult FROM Table1 WHERE A IN (1,2,3)
UNION
SELECT B myresult FROM Table1 WHERE B IN (1,2,3)
)t
ORDER BY myresult
这将输出:
MYRESULT
1
2
3
如果您期望结果为 1、2、3,请使用以下内容。
SELECT colB as NewCol FROM tableName WHERE colA=7
UNION
SELECT colA as NewCol FROM tableName WHERE colB=7;
如果您想要两列只需使用
SELECT colA, colB FROM tableName WHERE colA=7 OR colB=7;
尝试这个
SELECT A as Single FROM mytable WHERE B=7 UNION
SELECT B as Single FROM mytable WHERE A=7 ORDER BY Single;
你必须试试这个代码..
SELECT b as value FROM users WHERE a='7'
UNION All
SELECT a as value FROM users WHERE b='7'
此查询必须对您有所帮助。