【问题标题】:Getting distinct combination of two columns获得两列的不同组合
【发布时间】:2017-10-30 06:42:27
【问题描述】:

使用 Hibernate,我想获取如下值的行:

col1   | col2
-------+-------
   1   |    2
-------+-------
   2   |    1
-------+-------
   3   |    4
-------+-------
   4   |    5
-------+-------
   4   |    3

将产生:

col1   | col2
-------+-------
   1   |    2
-------+-------
   3   |    4
-------+-------
   4   |    5

我可以在 Hibernate on grails 中解决这个问题吗?或者任何人都可以提供这个的 MySQL 实现。打了这么久。

【问题讨论】:

    标签: java mysql hibernate grails groovy


    【解决方案1】:

    您可以像这样对两列进行分组:

    select * from yourtable group by (col1+col2);

    【讨论】:

      【解决方案2】:

      您可以使用mysql least()greatest() 运算符来确保较小的数字在前,最大的在后。这样你就可以使用 distinct 来消除重复:

      select distinct least(col1, fol2) as col1, greatest(col1, col2) as col2
      from yourtable
      

      【讨论】:

      • 在我的情况下,列中的实际值是电话号码,这仍然有效吗?
      • 是的,它会的,因为 MySQL 也可以排序字符串,而不仅仅是数字。
      猜你喜欢
      • 2023-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-20
      • 2023-04-05
      • 2014-03-05
      • 1970-01-01
      相关资源
      最近更新 更多