mysql - 有条件地选择 MYSQL 列

标签 mysql sql phpmyadmin

我的问题的示例模式在 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);

在网络游戏中,我想选择对手,可以是玩家player1idplayer2id

需要示例输入/输出

Input 1: Output 5, 7, 2
Input 5: Output 1, 3 ,4
& so on.

也就是说,所需数据可以在任何列中,但我需要有条件地或以任何其他方式在单列中输出。我听说过 MySQL 条件列,但无法创建查询以获得所需的输出。有人可以帮助完成所需的查询吗。

编辑

基于 this link ,我运行了以下查询但失败了。

SELECT IF(PLAYER1ID IS 1,PLAYER2ID as opponent,PLAYER1ID as opponent) 
FROM players
WHERE PLAYER1ID = 1 OR PLAYER2ID = 1;

最佳答案

我想你可以使用 case when then 语法如下:

SELECT CASE WHEN player1id = 1 THEN player2id ELSE player1id  END
FROM players WHERE player1id =1 OR player2id=1;

或者:

SELECT CASE WHEN player1id = 1 THEN player2id WHEN player2id =1 THEN player1id  END
FROM players WHERE player1id =1 OR player2id=1;

关于mysql - 有条件地选择 MYSQL 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13226520/

相关文章:

mysql - 查找与一个字段匹配的相关实体

mysql - 字符串分类策略

mysql - 我需要在 mysql 字段中查找并替换\n

mysql - 如何进行选择并能够回退到默认值?

mysql - 根据表 1 结果的条件,从连接 2 个或 3 个表的单行创建多个结果?

mysql - EasyPhp - 尝试授予权限时收到 "Missing Plugin"错误

mysql - 声明的变量在 select 语句中重置

mysql - 无法将foreign_key_checks设置为0/off

mysql - phpmyadmin 中的 sql 查询非常慢

mysql - magento 的服务器解决方案