5

book(id,book_id,status)statusのテーブルから 3 行を選択する必要がありますstatus=0。最初はすべての行がstatus0 です。したがって、select query.order by id と limit 3 を使用して、最初の 3 行を選択できます。問題は、選択した行のステータスを1 が選択されているためです。

PHP、CodeIgniter、および MySQL を使用していますが、単一のクエリで実行できますか?

例:

id  book_id  status 
1     100      0
2     101      0
3     102      0
4     103      0
5     104      0
6     105      0

最初の 3 行を選択した後、その行のステータスを 1 に更新する必要があります

id  book_id  status 
1     100      1
2     101      1
3     102      1
4     103      0
5     104      0
6     105      0
4

6 に答える 6

3

sqlfiddle デモ

UPDATE t JOIN (select id from t where status = 0 
                    order by id limit 3) t1 USING (id)
SET status=1 ;
于 2013-04-26T07:40:44.833 に答える