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?

SuiSuiAdvent Calendar 2023

Day 21

【SQLite3】条件式の設定で特定のデータを選択する

Last updated at Posted at 2023-12-20

はじめに

WHERE句で記述する際に,条件式の設定で使用するコマンドの備忘録.

WHERE句

SELECT句やUPDATE句などを使用する際,WHERE句を使うことで条件に一致したデータだけを取得,更新することができます.

WHERE基本構文

SELECT カラム名 , ... FROM テーブル名 WHERE 条件式;
UPDATE テーブル名 SET カラム名 = 値 WHERE 条件式;

条件式で使うコマンドを紹介していきます.


AND,OR

複数の条件式を設定する際に使用します.

SELECT カラム名 , ... FROM テーブル名 
WHERE 条件式1
OR 条件式2
AND 条件式3;

BETWEEN

カラムの値が値1から値2の間に含まれているかどうか(値1 <= カラム値 <= 値2)の条件式を記述できます.

SELECT カラム名 , ... FROM テーブル名 WHERE カラム BETWEEN 値1 AND 値2;

指定した日付区間のデータ抽出などで使用できそうですね.


LIKE

パターンマッチングを使って値の比較を行うことができます.

SELECT カラム名 , ... FROM テーブル名 WHERE カラム LIKE パターン;

パターンは特殊な文字であるパーセント(%)とアンダーバー(_)を文字列と組み合わせた値として記述します.

% : 任意の0文字以上の文字列
_ : 任意の1文字

WHERE カラム LIKE 'A%B'の場合,"A"から始まり"B"で終わる全ての文字列にマッチします.
例)・AB ・AaB ・AaaB ・AabaB

パターンを'%特定の文字列%'とすると,特定の文字列が含まれているか判別できます.


GLOB

LIKE句と同様に,パターンマッチングを使って値の比較を行うことができます.

SELECT カラム名 , ... FROM テーブル名 WHERE カラム GLOB パターン;

パターンに使用する特殊文字がLIKE句と異なります.

* : 任意の0文字以上の文字列
? : 任意の1文字
[abc] : a or b or cのいずれかに一致
[a-d] : aからdまでにいずれかに一致


IN

カラムの値が複数の値のいずれかと一致するかどうかという条件式を記述できます.

SELECT カラム名 , ... FROM テーブル名 WHERE カラム IN(値1, 値2, ...);

値をリストのように記述しておき,このリストの中のいずれかの値に一致するかどうかを判別します.

これは比較演算子と論理演算子を使うと下記のようになります.

SELECT カラム名 , ... FROM テーブル名 WHERE カラム = 値1 OR カラム = 値2 OR ...;
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?