2017-09-15 18 views
1

我有一个php文件,它将更新MySQL中的表。它将在作业完成后将所有完成标志从0更新为1。我需要从最低的主键(ID)开始查询done=0。工作完成后,我更新done = 1并转到下一行。我有以下表格:MySQL查询单行并从中获取值

-------------------- 
| 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,但是,我要开始与第一和处理,首先,然后移动标志测试下一个等等。所以我需要一个查询来显示第一行。我怎样才能做到这一点?

+3

将'limit 1'附加到您的查询中 – Fabricator

回答

2

您的查询是在正确的轨道上,因为它已经按升序排序。所有你需要做的就是限制它只返回第一个结果,如果存在的话。只需在查询结尾处添加LIMIT 1即可:

SELECT test FROM mytable WHERE done=0 ORDER BY id ASC LIMIT 1