DBの件数はCOUNT()関数を使用しないとズレる
新しいサーバに引っ越ししようと思い、phpMyAdminからDBをエクスポートし(簡易設定)、新たな環境にインポートしたところレコードの行数がなぜか合わなかった。いくつか環境を作成して比較した。
環境 | 件数 |
---|---|
オリジナルデータ(MySQL) | 129607 |
オリジナルと同じ環境に新規DBを作成しインポート(MySQL) | 133317 |
MAMP.appを使用してlocalhostでインポート(MySQL) | 129607 |
引っ越し先のサーバでインポート(MariaDB) | 133317 |
いずれもphpMyAdminから操作した。バージョンはすべて微妙に異なるが、念の為ここには書かない。件数はサーバ > データベース > テーブル > 表示
から確認した(上図)。
オリジナルデータと同じ環境のDBでも件数が変わるのがよくわからない。。日本語だとズバリな記事がヒットしなかったので、英語で調べて以下の記事を見つけた。
Same MySQL database import showing different numbers of records
この中の回答にあった「MySQL is, surprisingly, really bad at numbers. (驚くべきことに、MySQL は数字が苦手です。)」という一文。そーなん?🤔と思いつつCOUNT()関数をphpMyAdminのSQLから打ってみた。
SELECT COUNT(*) FROM <テーブル名>
そうするとすべての環境で件数は133317がカウントされた。どうやらSQLはCOUNT()関数を使用しないといけないみたい。
Comment