2010-11-25 4 views
4

私のMySQL DBに致命的な問題が見つかりました。Mysqlテーブルにデータを挿入するには手配が必要ですか?

いつか私はそれに新しいデータを挿入するとき、それはデータを配置する方法は、スタックのようなものです、例えば

4(最新)

1(最も古い) ...

どうすればこのように整理できますか?

1(最新)全て

4(最も古い)

おかげ。

答えて

1

SQL標準では、テーブルに「自然な」順序がないと具体的に述べられています。したがって、データベースエンジンは、任意の順序でORDER BYなしでリクエストを返すことができます。ほとんどのエンジンは、どのような順序でもデータを返すことを選択しているため、リクエストはあるリクエストから別のリクエストに変更される可能性があります。

したがって、特定の順序でデータを出力したい場合は、テーブルにレコードを追加した順序をプロキシするジョブをテーブルに含める必要があります。これを行う一般的な方法の2つは、古いレコードから新しいレコードまでの数字順になる自動インクリメントフィールドと、それが言うだけのTIMESTAMPカラムを使用することです。このような列を取得したら、ORDER BY ColumnNameを使用して検索して順序付き結果セットを取得できます。

2
SELECT * 
FROM TABLE 
ORDER BY ID 

あなたが見たときに/指定されORDER BYせずにテーブルからデータを選択すると、特定の順序をgaruanteeないことを覚えておく必要があります。

多くのファクト(データベースエンジン、スキーマ、ページストレージ、ページの断片化、インデックス、プライマリキー、または単に実行プランの最適化)のいずれかが原因でデータが表示されることがあります。