Как переключить значения между столбцами буксировки, используя один запрос выбора в MySQL? - PullRequest
0 голосов
/ 01 февраля 2019

Это представляет таблицу обменов между парами, в которых участвует Боб:

     Pair1      pair2        exchanges  
     Bob        Alice        12
     Jack       Bob          6  
     Max        Bob          22
     Bob        Steve        100

идея состоит в том, чтобы Боб появлялся только в паре 1 или паре 2, используя запрос выбора, вывод должен выглядеть следующим образом:

     Pair1      pair2        exchanges
     Bob        Alice        12
     Bob        Jack          6  
     Bob        Max          22
     Bob        Steve        100

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019

Ответ GMB, вероятно, более производительный.С логической точки зрения, однако, я думаю:

select pair1, pair2, exchanges
from t
where pair1 = 'Bob'
union all
select pair2, pair1, exchanges
from t
where pair2 = 'Bob'
0 голосов
/ 01 февраля 2019

Это должно делать то, что вы хотите:

SELECT
    'Bob' AS pair1,
    CASE 
        WHEN pair1 = 'Bob' THEN pair2
        ELSE pair1
    END AS pair2,
    exchanges
FROM mytable
WHERE pair1 = 'Bob' OR pair2 = 'Bob'

В запросе используется конструкция CASE для выбора столбца revelvant.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...