sql中的特定合并2列,不包括其中一列

时间:2014-06-29 23:18:05

标签: mysql sql merge

我有这样的表:

| user1 | user2 |
|   1   |   2   |
|   3   |   1   |
|   4   |   1   |
|   1   |   5   |
|  ...  |  ...  |

我想将这些列合并为一列,但是在新的合并列中必须是数字,这与给定的不相等。那就是如果我在上面的表中使用这个查询并给出数字1:

SELECT CONCAT(user1, user2) AS user FROM table WHERE user1 = 1 or user2 = 1

我已经退回了这个:

| user |
|  12  |
|  31  |
|  41  |
|  15  |
|  ..  |

何时应该返回:

| user  |
|   2   |
|   3   |
|   4   |
|   5   |
|  ...  |

1是一个例子。怎么做?

2 个答案:

答案 0 :(得分:1)

SELECT IF(user1 = 1, user2, user1) AS user
FROM table
WHERE user1 = 1 OR user2 = 1

答案 1 :(得分:0)

SELECT user1 AS users FROM `table` WHERE user1 NOT IN (SELECT user2 FROM `table`)
 UNION 
SELECT user2 AS users FROM `table` WHERE user2 NOT IN (SELECT user1 FROM `table`)
ORDER BY users