我想选择表中的第一行,按顺序time(升序),然后删除该行.我不想使用两个查询,因为有可能另一个客户端可以在删除之前选择该行(将有几台机器从不同的网络同时连接).
我以为我可以做点什么
SELECT * FROM `mytable` ORDER BY `time` LIMIT 1;
DELETE FROM `mytable` ORDER BY `time` LIMIT 1
Run Code Online (Sandbox Code Playgroud)
......但是我收到了一个错误:
您的SQL语法有错误; 检查与您的MySQL服务器版本对应的手册,以便在'附近使用正确的语法; 在第1行删除*FROM
pendingORDER BYtimeLIMIT 1'
最好的方法是什么?谢谢.
回复您的错误消息(与您的问题不同):
DELETE * FROM pending ORDER BY time LIMIT 1
Run Code Online (Sandbox Code Playgroud)
看起来你的语法有错误。尝试删除*. 那是,
DELETE FROM pending ORDER BY time LIMIT 1
Run Code Online (Sandbox Code Playgroud)
应该可以正常工作。
| 归档时间: |
|
| 查看次数: |
314 次 |
| 最近记录: |