25000行のMySQLテーブルがあります。
これはインポートされたCSVファイルなので、最後の10行を見て、すべてがインポートされたことを確認します。
ただし、ID列がないため、次のことは言えません。
SELECT * FROM big_table ORDER BY id DESC
このテーブルの最後の10行を表示するSQLステートメントは何ですか?
テーブルの構造は次のとおりです。
columns are: A, B, C, D, ..., AA, AB, AC, ... (like Excel)
all fields are of type TEXT
SQLテーブルには暗黙的な順序付けはありません。順序はデータから取得する必要があります。おそらく、テーブルにフィールド(たとえば、intカウンター)を追加して、データを再インポートする必要があります。
ただし、これはインポートの順序のみを示し、データは示しません。データに順序がない場合は、データを追加する方法を見つける必要があります。
編集:あなたが言う
...すべてをインポートしたことを確認します。
行カウントの使用の何が問題になっていますか?
ここでの答えはすべて優れていますが、念のため...最後に追加されたレコードを10個取得する方法があります。 (これは非常に信頼性が低いです:))まだあなたは次のようなことをすることができます
SELECT * FROM table LIMIT 10 OFFSET N-10
N-テーブル内の行の合計量(SELECT count(*)FROM table)。準備済みのクエリを使用して、単一のクエリに含めることができますが、それについては説明しません。
テーブルから選択し、ORDER BY __ DESCを使用して逆順でソートし、結果を10に制限します。
SELECT * FROM big_table ORDER BY A DESC LIMIT 10
「ORDER BY DESC」オプションを使用して、元の順序に戻すことができます。
(SELECT * FROMテーブル名ORDER BY id DESC LIMIT 10)ORDER BY id;
SELECT * FROM big_table ORDER BY A DESC LIMIT 10
_LOAD DATA INFILE 'myfile.csv'
_操作を実行している場合、すべての行が入ったかどうかを確認する最も簡単な方法は、show warnings();
をチェックすることです。データを空または一時テーブルにロードする場合、チェックすることもできます挿入後の行数。
ビッグデータでcount(*)クエリを実行するとコストがかかります。 「SELECT * FROM table ORDER BY id DESC LIMIT n」を使用すると思います(nはページあたりの行数)
予想される行数がわかっている場合は、予想される構造のデータベースに別の一時テーブルを作成し、その中に追加してからカウントを確認します...それを最終生産表に入れます。
ローテクなアプローチ:SQLでこれを行うのはやり過ぎかもしれません。質問によると、インポートの1回限りの検証を行う必要があります。
なぜ単にしないのですか:SELECT * FROM ImportTable
次に、結果グリッドの下部までスクロールし、「最後の」数行を視覚的に確認します。
コードを使用すると、テーブルの最後から10行を選択できます。 select * from(SELECT * FROM table1 order by id desc LIMIT 10)as table2 order by id "