0
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=?
一份声明中重要的是,只有一个参数是allowed.But我的答案有两个参数。
我要创建一个'row_id',但看起来这应该工作。但我第一次看到它时看起来有点可怕。 –
是的,你必须小心'DELETE'。当我写答案时,我有点害怕我输入的查询错误。我建议创建一个* test *数据库来首先运行这个来仔细检查。另外,你可以做'SELECT * FROM p1 WHERE username =? ORDER BY last_used ASC LIMIT 1'来查看哪些行将被删除。你也可以在事务内部运行'DELETE'(我认为)并且在提交之前仔细检查(使用'SELECT')一切正常。 –
感谢您耐心的回答,我也想到了答案。谢谢 – bay1ts