• ベストアンサー

テーブルの最後(最新)のレコードを抽出したい

宜しくお願いします。 PHP MYSQL の組み合わせで使っています 以下のようにして、最後のレコードを取り出したいのですが まったく違う事をしているのかもしれません。 $sql =" select * from テーブル where フィールド='max' " ; フィールドはauto_incrementで番号を振っています。 これで最大のつもりなのですが・・・。 他にも、レコードを入れた時間も記録したフィールドがあるのですが どうしてよいか?判りません。 テーブルの最新のレコードを出したいのです。 **その中の一つのフィールドを取り出すのですが、   それはうまくいっているみたいです    (max の所に数字を入れると表示します) お手数かけますが、どなたかご教授お願いいたします。

  • MySQL
  • 回答数3
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

#2回答者です。 MySQL 4.1以前(サブクエリを使えない)なら、以下のような方法が考えられます。 select * from 表名 order by 列名 desc limit 1

kiyomidesuyo
質問者

お礼

ありがとうございます。 初心者の私でも意味が良くわかる簡単な方法を伝授いただきまして! もっと勉強しようと思います 今日はありがとうございました。

その他の回答 (2)

回答No.2

MySQLのバージョンは、いくつですか? 一般的なSQLでは、以下のようなSQLを組みます。 select * from 表名 where 列名=(select max(列名) from 表名)

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.1

AUTO_INCREMENTを使っているならば LAST_INSERT_ID() で取得できます (LAST_INSERT_IDはMySQLの関数です

kiyomidesuyo
質問者

お礼

スミマセン、勉強不足で。 勉強しなおしてきます・・・。 ありがとうございました。

kiyomidesuyo
質問者

補足

スミマセン、どう使ってよいのか判りません。 *色々してみたのですが・。 $sql =" select * from テーブル where フィールド='max' " ; これはどのように変更したらよいのでしょうか? 宜しくお願いいたします。

関連するQ&A

  • 2つのテーブルからレコードを抽出する方法

    お世話になります。MySQLに関する質問です。 TABLE1とTABLE2の2つのテーブルからレコードを抽出する際、 TABLE1からは全項目のデータを取得し、TABLE2からは一部の項目の データを取得したいと考えています。 条件は、TABLE1とTABLE2を[No]という項目の値で紐(ひも)づけます。 (1) SELECT * FROM TABLE1 (2) SELECT COL_A, COL_B, COL_C FROM TABLE2 上記(1)(2)のレコードを1つのSQLで取得する方法について、どなたかご教授願えますか?

    • ベストアンサー
    • MySQL
  • オートインクリメントの最新の値

    いずれかの方法で、オートインクリメントで記録している数字の最新のものを取得したいです。 (PHP/MySQL) 考えているのは オートインクリメントのフィールドの中から一番大きいものを取得 という方法ですが、WHEREの条件式をどのように書けばいいかがわかりません。 また、他にいい方法があれば教えていただきたいです。

    • ベストアンサー
    • MySQL
  • 条件によってレコードを取得したい

    Mysqlで以下のような条件のSQL文がわかりません。 hogeというフィールドの値に1があればそのレコードを取得 hogeに1という値のフィールド値をもったレコードがないならhogeが空のレコードを取得したいのですが方法がわかりません。 SELECT * FROM `tebleA` where (`hoge` = '1') or `postageFee_memId` = '' LIMIT 5 上のSQL文ではどうしても「`postageFee_memId` = '' 」のほうが優先されます。 (優先されるのはオートインクリメントIDが小さいから当然ですが・・) 「`hoge` = '1'」が絶対優先されるようにしたいのです。 いわゆる 「`hoge` = '1'」がない場合だけ「`postageFee_memId` = ''」が実行できればと思います。 ifとかを使って条件文をかけばいいのでしょうか? 足らずの情報があればおっしゃってください。 何卒ご教授お願いいたします。

  • AccessのクエリでvbLfのみ抽出するには

    Access2010のクエリー(SQL)で vbLfかvbCrLfが含まれているレコードを抽出するには、 SELECT [テーブル1].* FROM テーブル1 WHERE [テーブル1].フィールド1 Like "*" & Chr(10) & "*"; vbLfが含まれているレコードは抽出せず、 vbCrLfが含まれているレコードだけを抽出するには、 SELECT [テーブル1].* FROM テーブル1 WHERE [テーブル1].フィールド1 Like "*" & Chr(13) & Chr(10) & "*"; でよいと思いますが、 vbCrLfが含まれているレコードは抽出せず、 vbLfが含まれているレコードだけを抽出するには、 どのように記述すればよいのでしょうか。 よろしくお願いします。

  • SQLでレコードの抽出

    MySQLです。 商品IDと販売先、管理番号が、判明しているとき、 最大商品IDとそのレコードを取得するには、 どのようなSQLを書けば、よろしいでしょうか? select *, ? from SYOUHIN WHERE ???? テーブル例) ↓ユニーク 商品ID 販売先 管理番号  販売日 1   A社   1     2015-07-10 2   A社   2     2015-07-12 3   B社   1     2015-06-30 4   B社   2     2015-07-06 5   C社   1     2015-04-21

    • ベストアンサー
    • MySQL
  • varcharでの最大値抽出

    すいません。お教えください。 Mysql5.0.15で以下のテーブルを作成した時、数値の最大値(1010)を抽出したいのですがどのようにすれば抽出できるのでしょうか?お教えください。 テーブル名:B フィールド名,フィールドタイプ,備考 b_id,int(10),auto_increment b1,varchar(10) b_id,b1 1,999 2,1000 3,1000-1 4,1010 5,800 重ねて質問させてください。 select max(b1) from b;とした場合 999としか表示されません。 これもなぜなんでしょうか。

    • ベストアンサー
    • MySQL
  • DBでAUTO_INCREMENTのフィールドの最新の数値を知るには

    PHP+MySQLで開発しています。 自らがDBテーブルに書き込んだレコードの、AUTO_INCREMENT指定してある項目に設定された数値を取得したいのですが、どのようにすればいいのでしょうか。 DB指定 CREATE TABLE test( no INT NOT NULL AUTO_INCREMENT, comment TEXT, PRIMARY KEY(no) ); PHP書き込み $sql = "INSERT INTO test(comment)VALUES('いろは')"; $results = mysql_query($sql,$dbid); このとき、テーブルtestのフィールドnoに設定された数値を知るために、 今はわざわざSQL select MAX(no) from test を発行しています。 これですと、確実性に欠けますし、冗長な気がします。 他に何か効率的な方法があるような気がしますので、 質問いたしました。 よろしくお願い申し上げます。

    • ベストアンサー
    • PHP
  • レコードの抽出

    PerlCGIでSQL-ENGINE.plというライブラリを使ってSQLを実行しています。最も結構ローカルなフリーのライブラリだから(作った人におこられるか)それの使い方を教えてくださいという訳ではありません。 一般的な形で結構ですので、SQL文を教えてもらいたいのです。 例えば select * from テーブル where 抽出条件 order by 何かの基準で降順並替え; として、さらにこの抽出結果の上から11番目のレコードから20番目のレコードだけを抽出したいとすると、これにどのようなSQL文を追加したらよいのでしょう。

  • 複数のテーブルの レコード件数所得

    sql初心者です。 php sql4.1を使って テーブルA・テーブルBの総レコード件数を所得がうまくできません。 テーブルAの◇◇が○○の含むレコード件数を所得は SELECT count(*) FROM テーブルA WHERE ◇◇ LIKE ○○ でできました。 テーブルA・テーブルBの◇◇が○○の含むレコード件数を所得はどうすればいいのでしょうか? よろしくお願いいたします.

    • ベストアンサー
    • MySQL
  • 複数のテーブルのレコードをカウントする方法

    2つのテーブルのレコード数をカウントする方法を教えてください。 $sql = "SELECT * FROM テーブル1 and テーブル2"; $res = mysql_query($sql,$myLink); $num_k = mysql_num_rows($res); こんな感じでカウントできるかと思ったのですが出来ませんでした。 宜しくお願い致します。

    • ベストアンサー
    • MySQL