簡體   English   中英

mysql以正確的順序從表中區分記錄

[英]mysql distinct records from table with proper order

我是MySQL的新手,正在使用下表。

表名是“ rd”

log_time                id   value1  value2   descrip

2015-09-22 12:11:02     45    0        0       short    
2015-09-16 08:02:02     15    1        3       nac  
2015-09-15 10:01:02     21    1        4       open     
2015-09-15 10:01:02     12    0        2       broke    
2015-09-15 10:01:02     21    1        4       open     
2015-09-15 10:01:02     12    0        2       broke    
2015-09-12 11:11:02     45    0        0       short
2015-09-15 12:01:02     85    2        4       under

我想按log_time安排上表,以及我要選擇不同的記錄,如下所示

log_time                id   value1  value2   descrip

2015-09-12 11:11:02     45    0        0       short 
2015-09-15 10:01:02     21    1        4       open
2015-09-15 10:01:02     12    0        2       broke
2015-09-15 12:01:02     85    2        4       under 
2015-09-16 08:02:02     15    1        3       nac 
2015-09-22 12:11:02     45    0        0       short    

我嘗試了以下查詢,

SELECT distinct log_time,id,value1,value2,descrip FROM rd ORDER   BY  log_time

但我沒有得到預期的結果

log_time                id   value1  value2   descrip

2015-09-12 11:11:02     45    0        0       short
2015-09-15 10:01:02     12    0        2       broke
2015-09-15 10:01:02     21    1        4       open
2015-09-15 12:01:02     85    2        4       under
2015-09-16 08:02:02     15    1        3       nac 
2015-09-22 12:11:02     45    0        0       short 

請指導我獲得預期的結果。

在我看來,您按log_time排序是正確的,但按id排序卻不正確。 因此,使用ORDER BY log_time, id DESC ,您將得到想要的東西。

當您在ORDER BY子句中指定多個列時,SQL從左到右確定順序。 在這種情況下,當兩行具有相同的log_time值時,它將(然后只有)考慮id的值,以確定哪一個先出現。

您的查詢是正確的,但是您需要給出二階條件,以便如果您使用相同的log_time獲得多個記錄,則可以基於該條件獲得下一個順序,否則mysql將自行選擇。

因此,您的查詢應如下所示-

SELECT DISTINCT col1,col2.... 
from table_name 
order by first_field asc/desc, 2nd_field asc/desc;

因此,根據您的查詢-

SELECT distinct log_time,id,value1,value2,descrip 
FROM rd 
ORDER BY log_time ASC, id DESC;

注意:ASC是默認順序,因此您可以跳過ASC關鍵字,但是如果需要保持反向順序,則必須指定DESC關鍵字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM