[解決済み] select 1 from tableとはどういう意味ですか?
質問
以下のようなクエリをよく見かけます。
Select 1
From table
この
1
どのように実行され、何を返すのでしょうか?
また、どのような場面で使えるのでしょうか?
どのように解決するのですか?
SELECT 1 FROM TABLE_NAME
とは、「テーブルから1を返す」という意味です。これだけではあまり目立たないので、通常は
WHERE
で、多くの場合
EXISTS
(@gbn が指摘するように、これは必ずしもベストプラクティスではありませんが、しかし、たとえ本当に意味がなくても、注意するのに十分なほど一般的です (とはいえ、他の人が使っていて、すぐに "もっと明白" になるので私はこれを使うことにします)。もちろん、それは粘着性のある鶏と卵の問題かもしれませんが、私は一般的にくよくよしません))。
SELECT * FROM TABLE1 T1 WHERE EXISTS (
SELECT 1 FROM TABLE2 T2 WHERE T1.ID= T2.ID
);
基本的に、上記はテーブル1から、テーブル2のIDに対応するものをすべて返す。(これは明らかに作為的な例ですが、考え方は伝わると思います。個人的には、上記を次のようにします。
SELECT * FROM TABLE1 T1 WHERE ID IN (SELECT ID FROM TABLE2);
と同じように考えています。
ファー
状況的にやむを得ない理由がない限り、読者にとってより明確なものとなります)。
EDIT
実は、今まで忘れていたのですが、1つだけケースがあります。データベース内の値の存在を外部の言語から判断しようとする場合、たまに
SELECT 1 FROM TABLE_NAME
が使われます。これは個々のカラムを選択することに比べて大きな利点はありませんが、実装によっては
SELECT *
なぜなら、DBが言語に返す列の数が多ければ多いほど、データ構造が大きくなり、その分時間がかかってしまうからです。
関連
-
[解決済み】MySQLの「ロックを取得しようとしたときにデッドロックが見つかりました。トランザクションを再起動してみてください」を回避する方法
-
[解決済み】mysqld_safe UNIX ソケットファイル用のディレクトリ '/var/run/mysqld' が存在しません。
-
[解決済み】mysqladmin: 'localhost'でのサーバーへの接続に失敗しました。
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] SQLテーブルで重複する値を検索する
-
[解決済み] MySQLの複数行を1つのフィールドに連結することはできますか?
-
[解決済み] INNER JOINよりもCROSS APPLYを使用すべきなのはどのような場合ですか?
-
[解決済み] MySQLで'insert if not exists'を行うにはどうしたらいいですか?
-
[解決済み】「INNER JOIN」と「OUTER JOIN」の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】MySQL 派生テーブルはすべて独自のエイリアスを持つ必要があります。
-
[解決済み] ERROR 1148: 使用されたコマンドはこのMySQLバージョンでは許可されていません。
-
[解決済み] SQLZOO - select from world チュートリアル #13
-
[解決済み] エラー:テーブル '<table-name>' に対するユーザー '<userid>'@'<ip-address>' への select コマンドが拒否されました。
-
[解決済み] アプリでSSLを有効にしていない場合、AzureのMySQLサーバーへの接続に失敗するのはなぜですか?
-
[解決済み] Mysql: const テーブルを読み込んだ後、不可能な場所に気づいた。
-
[解決済み] MySQLのカラムを並べ替えるには?
-
[解決済み] エラーコード1111。グループ関数の無効な使用
-
[解決済み] DEFAULT NULLとCHECKBOX NULL mysqlの違いは何ですか?
-
[解決済み】Count(*)とCount(1)の比較 - SQL Server