0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【SQL】SQLでboolean(真偽値)を返す

Posted at

現状

アプリケーション作成で条件によってtrue,falseを返す必要が出てきたのでやってみる。(普通に値を返すだけしかやったことないので真偽値を返す方法を知らなかった・・・)

条件

テーブルとしてusers、カラムとしてid,nameがあります。
この2つのカラムの現状が↓になります。idと名前が入っています。

id name
1 tanaka
2 sato
3 takahashi

ここに例えば、id→1 name→tanakaを検索するとすでにDBの中に2つのカラムのデータが存在しているのでtrueを返し、どちらか一方でも一致しない場合はfalseを返すようにしたいと思います。

やってみる

結論、下のSQL文でできます。

SELECT EXISTS(SELECT 1 FROM users WHERE id = '[比較するid]' AND name = '[比較するname]');

idとnameが一致している場合は1(true)、一致していない場合は0(false)が返されます。

EXISTS句はデータの存在チェックで利用されます。また、該当データが存在する場合は1(true)、存在しない場合は'0(false)'を返します。

後ろの

SELECT 1 FROM users WHERE id = '[比較するid]' AND name = '[比較するname]'

に関してはまず、
WHERE id = '[比較するid]' AND name = '[比較するname]はレコードの検索条件を指定しています。

SELECT 1に関してはレコードが存在するために使用しています。1は任意の数字、文字になります。今回は分かりやすいようにwhereで指定した条件で当てはまっていたら1を返すようにしているだけです。SELECT *でも問題ありません。

以上このようにして条件によって異なる真偽値を返す、SQL文を書くことができました!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?