• 締切済み

レコードの有無だけを調べる方法

通常SELECT命令では、WHERE句で指定した条件と一致したレコードを取り出しますが、WHERE句で指定した条件と一致するレコードが有るか無いかだけ(TRUEかFALSEを返す)を調べる方法はありますでしょうか? ご存知の方がいらっしゃいましたらお教えいただければと思います。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

こういうことじゃない? SELECT C>0 AS IS_EXIST FROM ( SELECT count( * ) AS C FROM テーブル WHERE ・・・・ ) AS DAMMY

全文を見る
すると、全ての回答が全文表示されます。
  • mahny
  • ベストアンサー率74% (57/77)
回答No.1

mysql> SELECT (count(pkey) > 0) is_exist FROM exist_example_table; +----------+ | is_exist | +----------+ | 1 | +----------+ 1 row in set (0.00 sec) こんなカンジですか? ・pkeyはユニークキーとしてテーブルにあるとしています。ワイルドカード(*)だと処理効率が悪いので…。 ・mysqlではtrue=1、false=0と処理されるようです。 ・is_existは別名付けただけですので好きなように変えられます。

参考URL:
http://dev.mysql.com/doc/refman/5.1/ja/boolean-values.html
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • <SQL>条件付きで最小値レコードを抽出する方法

    SQLite3.7.5を使っています。 以下<抽出前>の様なテーブルから、col2の値が"FALSE"で(col1=3,4,5の3つ)かつ、col3が最小値(col3=3)であるレコードを<抽出後>のように抽出するSQL文をご教示ください。 <抽出前> col1 | col2 | col3 1 | true | 3 2 | true | 0 3 |false | 3 4 |false | 5 5 |false | 3 <抽出後> col1 | col2 | col3 3 |false | 3 5 |false | 3 自分で考えたSQL文は以下です。 抽出結果は問題ないのですが、同じSELECT文を2回書いていてだいぶ効率悪いことをしているのではないかと思い質問しました。 よろしくお願い致します。 SELECT * FROM (SELECT * FROM test WHERE (col2 = false)) WHERE col3 = (SELECT min(col3) FROM (SELECT * FROM test WHERE (col2 = false)))

  • AES_ENCRYPTとAES_DECRYPTについて

    大変困っています。テーブルに暗号化して書き込むことはできました。ですがテーブルから引っ張ってこようとしたとき問題が起きました。 select * from tableとやると暗号化されたまま出てきました。問題ありません。 次に select * from table where aa = 'bb' としたときに事件が起きました。一致するレコードがありません。どうして? あ、そうか! select aes_decrypt(aa,'111') from table where aa = 'bb'一致するレコードがありません。 な、なぜだ?さっぱりわかりません。 暗号化してしまったレコードはwhere条件を指定できないのでしょうか? もし、知っていらっしゃる方がいましたらどうか教えてください。 是非是非よろしくお願いします。

  • 大量レコードをTRUNCATEせずにすばやく削除する方法

    大量レコードをTRUNCATEせずにすばやく削除する方法 100万レコードあるテーブルのうち1万レコードを残して削除したい。TRUNCATEではWHERE句が指定できないので不可。DELETEでは遅すぎる。何かいい方法はないでしょうか? 1万レコードを一時テーブルに退避してTRUNCATE後に1万レコードをINSERTというのは無しです。1万レコードが1秒でもテーブル上から消えてはいけません。 Oracle10g

  • DetailsViewで指定されたレコード表示したい

    Visual Studio 2008で作業しています。 DetailsViewコントロールを使用してAcessDBのレコードの内容を表示しています。この画面は、他の画面で、レコードの一覧を表示し、その一覧で、あるレコードが選択されたときに呼び出されます。この画面で、そのレコードの詳細を表示したいと考えています。レコードには主キーがIDという名称で登録されています。この画面にきたとき、(他の画面で選択した)IDの値を取り出すところまでは、出来たのですが、このIDを指定して、SQL文を発行し、このレコードを取得する方法がわかりません。(現在のSQLステートメントは、select ID,項目1,項目2 ... from table_A のようになっており、 where 句をつけていません。取得したIDをテキストボックスにセットし、where (ID = TextBox1.[Text])のようにしたのですが、実行時に異常終了していまいました。) DetaisViewで、指定されたレコードを表示する方法をご存じのかたがおりましたら教えてください。

  • 複数レコードを横並び1レコードで抽出する方法

    ORACLE10gを使用しています。 似た内容の質問があったので QNo.1828920:検索対象のデータが「複数レコード」を「1レコード」として獲得するSQL も見てみたのですが、実際には他にも抽出条件や抽出項目が多いので、 できればGROUP BYは使いたくないと思い、質問させていただきます。 ・TABLE)イメージ CD|NO|NM 10 | 0 | あ 10 | 1 | い 10 | 2 | う 10 | 3 | え ・前提 画面でCD:10およびNO:0~NO:2と範囲指定します。 ・求める結果 下記のように範囲指定したNO分、NMを横並びに抽出したいです。 10,あ,い,う ・考えた内容 VBを使用しているのでプログラム中で動的に抽出項目、FROM句、WHERE句を 追加しようと考えました。 TABLE.NOは2桁なので最大指定で0~99になる可能性があります。その場合FROM句のTABLE別名が99個に なってしまいますが、書き方として問題ないのか不安です。 何かアドバイスがありましたらお願いします。 ・SQL案 SELECT TABLE0.CD, For I = 0 To 2 TABLE & I.NM AS NM & I, Next K FROM For J = 0 To 2 TABLE TABLE & I, Next K WHERE TABLE0.CD = 10 AND For K = 0 To 2 TABLE & K.NO = K AND Next K

  • 数百万件レコードのdelete

    DELETEにてWHERE句の条件で数百万件のレコードを削除したいのですが、効率的な方法を教えてください。SQL初心者です。 LOGの肥大化や削除に非常に時間がかかるのを心配してます。

  • select文でのデータの取り出し方法

    データベースに姓と名が別々に格納されていて SELECT文で姓と名を結合させて取り出したいのですがいい方法はありますか?教えてください。 ”横山”と”たかし”が別々のカラムに格納されています。”横山たかし”の形で取り出してwhere句の条件と一致させたいです。

    • ベストアンサー
    • MySQL
  • SybaseBcpOut 特定レコード出力

    Sybase環境でBCPOUTを行う時に、SQLで言うwhere句を指定して特定のレコードのみファイルに出力できないのでしょうか?

  • ADOによるレコードセット検索

    いつもお世話になっております。GomiYasikiです。 レコードセットをWhere句の様な複数条件で検索したいのですが、 サブクエリーを使っている場合、DAOだとエラーが出てしまいます。 そのためADOで行いたいのですが、可能なのでしょうか? (クエリーでも構いません) 行いたいのは以下の様な事です。 条件がFieldA='AAAA' and FieldB=123 and FieldC=1で カーソル●以降、若しくはselectの結果レコードのxx行目以降にこの条件のレコードが存在するかを調べたいです。 度々ですが、宜しくお願い致します。  FieldA, FieldB, FieldC  AAAA, 123, 1 ●BBBB, 456, 2  CCCC, 123, 3  DDDD, 122, 1  AAAA, 123, 1

  • 複数のレコードを取得する方法

    VB6とデータベース(ACCESS2003)で ADOを利用して「条件に一致するレコードを取得する」ということを勉強しています。 選択クエリーを指定してリストボックスに取得したデータを表示させています。 そこで質問なのですが 条件に一致するレコードが複数ある場合、それらをすべてリストボックスに表示させる方法を教えてほしいのです。 一番最初のデータしか表示されません(泣) 宜しくお願いします。