SQL の where句 で 「1=1」「1=0」を 使用する

SQL

sqlの条件指定は、書き出しは「WHERE」、2つ目以降は「AND」にする必要がありますが、
「where 1=1」を利用することで全ての検索条件をANDで結ぶことができます。

「1=1」を活用することで検索条件が必要ないケースや複数件必要なケースにも対応することができます。

//POSTでユーザーが入力した検索条件を受け取る
$surname = $_POST['surname'];
$name = $_POST['name'];

// ベースとなるsql(全件取得)
$sql = 'SELECT * FROM user WHERE 1=1';
// 条件追加(姓)
if($surname) $sql .= ' AND surname = :surname';
// 条件追加(名)
if($name) $sql .= ' AND name = :name';

// 上記のように設定することで、全件取得する場合、姓を検索した場合、名を検索した場合、両方を合わせて検索した場合
// に対応したsqlを作成することができます。

「1=1」は条件がない場合全てのデータを取得しますが、条件がない時は一件も表示させたくない場合、「1=0」を活用することができます。また、この際に検索条件を結ぶ場合は「OR」を使用します。

//POSTでユーザーが入力した検索条件を受け取る
$surname = $_POST['surname'];

// ベースとなるsql(一件も取得しない)
$sql = 'SELECT * FROM user WHERE 1=0';
// 条件追加(姓)
if($surname) $sql .= ' OR surname LIKE :surname';

さらにSQLに関する知識を深めたい方へ

もっとSQLに関する知識を深めたい方はUdemyでSQLを学ぶことをお勧めします。
筆者もUdemyの数々のプログラムを利用して学習を行っております。
参考までに、初心者の方におすすめのプログラムは
【未経験者もこれ一本でOK】MySQLで学ぶ「SQL」「データベース基礎」講座【プログラミング初心者向け】
です。上記以外のプログラムを探されたい場合、以下のリンクからSQL講座の一覧ページを確認していただけます。
UdemyのSQL一覧ページはここから。
ぜひご活用ください!

sql一覧に戻る

コメント

タイトルとURLをコピーしました