はじめに
データベースとのやりとりにおいて、私が誤解したあるSQLの動作についてお話しします。それは、SELECT 1 FROM table
というクエリです。一見すると、このクエリは1つだけの1を返すように思えるかもしれませんが、その実際の動作を見てみましょう。
SELECT 1 FROM table の動作
以下のようなデータがある users テーブルを例にとります。
id | username |
---|---|
1 | Tarou |
2 | Jirou |
以下のSQLの実行結果を確認します。
SELECT 1 FROM users
以下のような結果が返されます。
column |
---|
1 |
1 |
上記の結果から、SELECT 1
はテーブルの各行に対して1を返すことが確認できます。今回の場合、usersテーブルには2行のデータがあるため、2回1が返されました。
終わりに
さて、今回はある意味「当たり前」のようなSELECT 1 FROM table
について触れてみました。このクエリ、レコードの存在チェックするときとかに利用されます。でも、ちゃんとどう動くのか理解してないと、意図しない結果が返ってきて驚くことも…。
最後に、この記事をよんでいただきありがとうございます。引き続きデータベースやSQLに関する学びを深めていきます。
コメント