0

次のように2つの列があります。

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つの列を取得しています.

欲しいものを手に入れる方法があると確信していますが、それをググる方法がわかりません!!

4

6 に答える 6

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)

ここでフィドルを参照してください。

A と B の両方の値が同時に 7 になる可能性があり、その行をスキップしたい場合は、次のように置き換えることができます。

WHERE 7 IN (A, B)

WHERE A=7 XOR B=7
于 2013-02-13T12:10:50.970 に答える
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

SQLデモはこちら

于 2013-02-13T12:34:59.373 に答える
0

このコードを試す必要があります。

SELECT b as value FROM users WHERE a='7'
UNION All
SELECT a as value FROM users WHERE b='7'

このクエリはあなたを助ける必要があります。

于 2013-02-13T13:04:32.223 に答える
0

これを試して

SELECT A as Single FROM mytable WHERE B=7   UNION   
SELECT B  as Single FROM mytable WHERE A=7 ORDER BY Single;
于 2013-02-13T12:16:57.547 に答える