我有两列如下:
A | B
---|---
7 | 1
7 | 2
3 | 7
4 | 5
-------
我想获得包含(1,2,3)的1列。
目前我正在查询:
SELECT `A` , `B`
FROM `mytable`
WHERE `A` =7
OR `B` =7
但是我在A和B两边都得到了包含数字7的2列。
我确定有办法得到我想要的但我不知道如何谷歌那个!!
答案 0 :(得分:3)
你可以用这个:
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)
请参阅小提琴here。
如果A和B的值同时为7,并且您想跳过该行,则可以替换:
WHERE 7 IN (A, B)
与
WHERE A=7 XOR B=7
答案 1 :(得分:2)
不确定你需要什么,但我猜是这样的:
SELECT A FROM mytable WHERE B=7
UNION
SELECT B FROM mytable WHERE A=7
答案 2 :(得分:1)
我认为你在寻找这个
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
答案 3 :(得分:0)
试试这个
SELECT A as Single FROM mytable WHERE B=7 UNION
SELECT B as Single FROM mytable WHERE A=7 ORDER BY Single;
答案 4 :(得分:0)
如果你期望结果为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;
答案 5 :(得分:0)
你必须尝试这个代码..
SELECT b as value FROM users WHERE a='7'
UNION All
SELECT a as value FROM users WHERE b='7'
此查询必须为您提供帮助。