1

MySQL テーブルの最後の行を選択するにはどうすればよいですか?

データを挿入していて、前の行から列の値を取得する必要があります。

(ちなみに私はPHPを使用しています。)table1はこのようなものです

table1
******************
cate_id | task_id | start_date  |     end_date | line |

 1         2        30/04/2012      26/06/2012    text
 3         1        26/06/2012      27/06/2012    text
 2         1        27/06/2012      01/01/9999    text

NO an auto_incrementそのテーブルにあります。

私のケースは、テーブルの既存の最後の行を更新してから、新しい行を挿入することです。

4

2 に答える 2

6

質問を編集したので、ここに更新があります

SELECT MAX(cate_id) AS last_cate_id FROM table;

または、次の方法で次の ID を取得できます。

SELECT MAX(cate_id)+1 AS next_cate_id FROM table;

トランザクションがなければ、これは同じ cate_id を挿入するために非常に脆弱です!

たとえば MyISAM が原因でそれらを使用できない場合は、select を使用して挿入できます。

INSERT INTO table
(cate_id, task_id ..)
VALUES
( (SELECT MAX(cate_id)+1 AS next_cate_id FROM table), 1 )
于 2012-06-26T11:50:11.987 に答える
1

order by がない場合は、「LAST」値または最初の値を取得できません。これは、順序が (必然的に) 同じではないためです。最初または最後?、日付または自動インクリメントを使用している場合は、それを取得できますが、次の'column1'ようなことができる注文があるとしましょう:

select * from table1 order by `column1` desc limit 1
于 2012-06-26T12:27:04.810 に答える