[英]Need a SQL query statement for this case
這是表格的結構
mysql> select * from p1;
+----------+-------+-----------+
| username | token | last_used |
+----------+-------+-----------+
| a | aacs | 5 |
| d | dddd | 3 |
| a | aaaaa | 3 |
+----------+-------+-----------+
如何從用戶名查詢的集合中刪除last_used值最小的記錄? 在這種情況下,給定的用戶名參數為'a',然后我保留刪除記錄'a','aaaaa',3,因為3小於5(last_used(5)的用戶名也為'a')。
我的答案是
delete from persistent_logins
where last_used=(select *
from (select MIN(last_used)
from persistent_logins where username=?)as t
)
and username=?
但這很有用,我需要一個聲明,如delete .... from..where username=?
重要的是只允許使用一個參數。但是我的答案有兩個參數。
實際上,您可以將ORDER BY
和LIMIT
與DELETE
。 將按LIMIT
順序控制刪除的行數。
如果指定了ORDER BY子句,則按指定的順序刪除行。 LIMIT子句限制可以刪除的行數。
(來源: https : //dev.mysql.com/doc/refman/5.0/en/delete.html )
嘗試這樣的事情:
DELETE FROM p1
WHERE username = ?
ORDER BY last_used ASC
LIMIT 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.