我的问题的示例架构位于SQLFiddle如下:
CREATE TABLE `players` (
`player1id` int(11) NOT NULL,
`player2id` int(11) NOT NULL,
PRIMARY KEY (`player1id`,`player2id`)
) ENGINE=InnoDB;
INSERT INTO `players` values
(1,5),
(1,7),
(5,3),
(5,4),
(2,1);
在在线游戏中,我想选择对手,可以是玩家player1id
or player2id
.
所需输入/输出示例
Input 1: Output 5, 7, 2
Input 5: Output 1, 3 ,4
& so on.
也就是说,所需的数据可以位于任何列中,但我需要有条件地或以任何其他方式在单列中输出。我听说过 MySQL 条件列,但无法创建查询来获取所需的输出。有人可以帮助解决所需的查询吗?
Edit
基于这个链接,我运行以下查询但失败了。
SELECT IF(PLAYER1ID IS 1,PLAYER2ID as opponent,PLAYER1ID as opponent)
FROM players
WHERE PLAYER1ID = 1 OR PLAYER2ID = 1;