みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

MySQL 5.0.x

データベース「db1」にレコードが一件も存在しない場合を検知したいのですが、db1 のレコード件数を計数すると、数万件のレコードがあってもすべて数えてしまうことになります。
かといって、いちばん上のレコードを取ることに失敗したからといって、レコードが一件もないとは断言できません。

お願いします。

投稿日時 - 2008-03-10 17:35:09

QNo.3850516

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

select * from table_name limit 0,1 
↑これだと「ある」場合はいいですが「ない」場合はエラーになるかもしれません。

select count(*) as count from table_name
↑これでテーブル件数を取ってこれます。
countが0ならばデータ無し、それ以上ならデータありです。

質問者さんはDBの事をあまりよく理解されていない様ですが
もし、レコードを取る事に失敗したらエラーになりますし
数万件あっても何レコードあるかどうかは一瞬でわかります。

投稿日時 - 2008-03-11 03:33:17

補足

> 質問者さんはDBの事をあまりよく理解されていない様ですが

私に限らず、このカテゴリに限らず、よく理解していたらどなたも質問はしないと思うので、これは取り立てて言うほどのことでもなく、至極当たり前のことではないでしょうか。

> レコードを取る事に失敗したらエラーになりますし

それを包含してのソリューションを求めています。

投稿日時 - 2008-03-11 10:42:20

お礼

> select count(*) as count from table_name

一行もないとき (0 行) 1、一行のとき 1、また二行のとき 2 が返ってきました。

投稿日時 - 2008-03-11 16:19:24

ANo.1

>いちばん上のレコードを取ることに失敗したからといって、レコードが一件もないとは断言できません。

select * from table_name limit 0,1 で一番上(この表現もすごくヘンですが)のレコードがなければ、それ以降にもレコードはありません。条件(where)なしでlimitを入れれば、{ある|ない}はわかると思います。

投稿日時 - 2008-03-10 17:47:17

補足

> 一番上のレコードがなければ、それ以降にもレコードはありません

なければそれはそうでしょうが

> いちばん上のレコードを取ることに失敗したからといって

ということです。
第一のレコードが取れないのは第一のレコードが存在しないことによるもののみとは考えられないと思うのですが。

投稿日時 - 2008-03-10 18:50:39

お礼

まだ正解が出ていませんが、他の質問を投稿しようとすると「アクティブ質問数の上限に達しています」というエラが出るので、いったんこの質問を閉じようと思います。

後日、質問のコピーを再投稿します。

投稿日時 - 2008-03-11 16:49:46

あなたにオススメの質問