PHP mysql不同,只加载1组ID

Joe*_*iak 5 php mysql select distinct

我正在尝试获取数据,其中顺序与唯一ID无关.所以我的查询就是这样

SELECT DISTINCT id1, id2 FROM messages ORDER BY date
Run Code Online (Sandbox Code Playgroud)

如果我有一个包含以下数据的数据库:

id1 | id2 | date
 5  |  6  |  1/2/2011
 6  |  5  |  1/1/2011
Run Code Online (Sandbox Code Playgroud)

我只需要加载具有最新日期的列,因为ID是相同的2个人.真的,我必须加载id,其中一个id是你的,所以我现在的真实查询是

SELECT DISTINCT userid_1, userid_2 
  FROM messages 
    WHERE userid_2=$dbid 
    OR userid_1=$dbid 
ORDER BY date
Run Code Online (Sandbox Code Playgroud)

我得到一个结果 [6 5] [5 9] [9 5] [5 15] [5 6] [5 17]

结果2和3是相同的,1和5是相同的.实际上只应查询4个结果.谢谢!

Ita*_*vka 2

一种选择是:

SELECT DISTINCT 
if(userid_1 >= userid_2,userid_1, userid_2) AS 'id1', 
if(userid_1 >= userid_2,userid_2, userid_1) AS 'id2'

FROM messages 
WHERE userid_2=$dbid OR userid_1=$dbid ORDER BY date
Run Code Online (Sandbox Code Playgroud)
  1. 此查询显示每条记录的两个字段。
  2. 如果第一个字段大于或等于 userid2,则第一个字段将为 userid1,否则将显示 userid2
  3. 第二个字段具有相反的逻辑
  4. 这确保了两组相似的结果总是以相同的方式排序,因此DISTINCT将认为它是相同的。