我有这样的表:
| 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是一个例子。怎么做?
答案 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