我有一个php文件,它将更新MySQL中的表。作业完成后,它会将所有已完成标志从0更新为1。我需要从最低主键(ID)开始查询done=0
。作业完成后,我更新done = 1并继续下一行。我有下表:
--------------------
| ID | test | done |
--------------------
| 1 | test1| 0 |
--------------------
| 2 | test2| 1 |
--------------------
| 3 | test3| 0 |
--------------------
| 4 | test4| 0 |
--------------------
| 5 | test5| 1 |
--------------------
当我执行以下查询SELECT test FROM mytable WHERE done=0 ORDER BY id ASC
时,它给了我所有已经完成0的标记的测试,但是,我想从第一个开始并首先处理它,然后继续前进到下一个等等。所以我需要一个只显示第一行的查询。我怎样才能做到这一点?
答案 0 :(得分:2)
您的查询是在正确的轨道上,因为它已经按升序ID进行排序。您需要做的就是将其限制为仅返回第一个结果(如果存在)。只需将LIMIT 1
添加到查询的末尾:
SELECT test FROM mytable WHERE done=0 ORDER BY id ASC LIMIT 1