私は基本的に "目標"バーを作ろうとしています。目標はMySQLテーブルで最後に行ったエントリを取得することによって決定されます。私は最後のエントリーのIDを取得したいと思います。MySQLテーブルの最後のエントリを取得
テーブルの最後のエントリを取得し、その最後のエントリからIDを取得するにはどうすればよいですか? (PHPを使用して)
私は基本的に "目標"バーを作ろうとしています。目標はMySQLテーブルで最後に行ったエントリを取得することによって決定されます。私は最後のエントリーのIDを取得したいと思います。MySQLテーブルの最後のエントリを取得
テーブルの最後のエントリを取得し、その最後のエントリからIDを取得するにはどうすればよいですか? (PHPを使用して)
を使用することができます。
:行を取得するために、次にSELECT MAX(id) FROM mytable
を
SELECT * FROM mytable WHERE id = ???
または、すべて1つのクエリで実行できます。
この例で使用されるように、このSQLクエリであなたが望む結果を得るために、このクエリを使用することができますSELECT * FROM mytable ORDER BY id DESC LIMIT 1
ありがとう!私は他の人たちがそれをもっと複雑にしていたと思う。私の質問はもっと良いと思うかもしれない。私は単に最大のIDが必要でした。ありがとう! – ComputerLocus
:
$sql = "SELECT user_id FROM my_users_table ORDER BY user_id DESC LIMIT 0,1";
ありがとう、しかし、これはおそらく動作するだろうが、私はエリックを使用します! – ComputerLocus
それは問題ありません。私はこの糸があなたの問題を適切に解決してくれることを願っています) – dotTutorials
は確実にこれを行うには、あなたはあなたができるテーブル内のいくつかのフィールドを持っている必要がありますどれが最後であるかを調べる。これは、レコードを追加したときのタイムスタンプ、継続的に増加するシーケンス番号(特に自動インクリメントシーケンス番号)などです。
次に、「rec_seq」というシーケンス番号を考えてみましょう。
select * from my_table
where rec_seq=(select max(rec_seq) from my_table)
Ericの答えのように見えますが、私はEricの答えを取らなければなりません! – ComputerLocus
問題はありませんが、彼は少しシンプルですが、簡単な解決策です。 – Jay
LAST_INSERT_ID()
機能を使用できます。例:
$sql = "SELECT * FROM mytable WHERE id = LAST_INSERT_ID()";
エリックが答えたものを使用しますが、これはうまくいくように見えます! – ComputerLocus
note LAST_INSERT_IDについて:LAST_INSERT_IDは、現在の接続によって挿入された最後の行のIDを返します。他のIDは返しません。 – laltin
これはあなたの
をテーブルのフィールドデータの最後の結果が得られます0,1 逆の順番と設定された制限内のテーブルからすべてのフィールドを選択し、ユーザー
'SELECT user_id FROM table_name WHERE user_id = '.$userid.' ORDER BY user_id DESC LIMIT 1';
の最新のエントリを取得します。
'id'のような自動増分フィールドを持っていますか? –
最新のエントリを取得していることを確認するには、タイムスタンプを記録する必要があります。 –
@MichaelMior、絶対にそうではありません!タイムスタンプは、これを保証するための解決策の近くにはありません。 – Brad