【问题标题】:Specific merge 2 columns in sql excluding one of themsql中的特定合并2列,不包括其中之一
【发布时间】:2014-08-20 07:01:04
【问题描述】:

我有这样的表:

| 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 就是一个例子。该怎么做?

【问题讨论】:

    标签: mysql sql merge


    【解决方案1】:
    SELECT IF(user1 = 1, user2, user1) AS user
    FROM table
    WHERE user1 = 1 OR user2 = 1
    

    【讨论】:

      【解决方案2】:
      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
      

      【讨论】:

        猜你喜欢
        • 2017-02-15
        • 2013-03-31
        • 1970-01-01
        • 2018-09-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-22
        • 1970-01-01
        相关资源
        最近更新 更多