Это структура таблицыНужен оператор запроса SQL для этого случая
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