SQL で インデックスを作成する方法 初心者でも理解できます!

SQL

sqlを高速化したい。そう思われてインデックスの作成に行き着かれた方が多いのではないでしょうか。

「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をコピーしました