質問

私はMySQLを使用しており、いくつかの問題に直面しています。挿入された最後の行を取得したいです。

<<以下は詳細>>です

以下はテーブルの作成方法です。

create table maxID (myID varchar(4))

以下のように4つの値を挿入しました

insert into maxID values ('A001')
insert into maxID values ('A002')
insert into maxID values ('A004')
insert into maxID values ('A003')

実行するとき select myID, last_insert_id() as NewID from maxID, 、以下のように出力が得られます

myId NewID
A001   0  
A002   0  
A004   0  
A003   0    

以下のコードを試したとき、

select myId, last_insert_id() as NewID, @rowid:=@rowid+1 as myrow from maxID, (SELECT @rowid:=0) as init

以下のように出力が得られます。

myId NewID  rowid
A001   0      1
A002   0      2
A004   0      3
A003   0      4

ただし、コードを使用する場合 select myId, last_insert_id() as NewID, @rowid:=@rowid+1 as myrow from maxID, (SELECT @rowid:=0) as init where @rowid = 4, 、エラーが発生します Uknown column 'myrow' in where clause

使用するとき where @rowid=4, 、テーブルにデータはありません。

データで再生するためのリンク

ノート: ここでは、希望する出力を取得するためだけに4を使用しています。後でこれをクエリから取得できます (select max(rowid) from maxID)

最後のレコードのみを見たい場合は、私に何をする必要があるかを提案してください。 A003.

御時間ありがとうございます。

アップデート:

私はすでに何百万ものデータをテーブルに持っているので、以下に提案するように新しい列を追加することはできません。

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top