今日、私はSQL文に応じて簡単に(おそらくほとんどばかげた質問)尋ねます。可変条件のあるSQL
私はいくつかの条件がありますが、常にそれらのすべてを持つSELECTクエリを扱っています。私は例を使って説明します。
は...私は人のIDを取得したい[ID、名前、姓]単純なテーブルの人を想像してみて、私はいつも名前を尋ねるが、常に姓を求めるない、そうだろう私はそれを得るために2つのとりうるコードを持っている
SELECT id FROM Person where name = $name; (if parameter surname = null)
または SELECT id FROM Person where name = $name and surname = $surname;
(パラメータ姓が定義されている場合)
を、私:クエリは、クエリは可能性が... PHPの関数のパラメータに依存しますそれが最適化されていないと思う
オプション1:
if ($surname) {
SELECT id FROM Person where name = $name and surname = $surname;
else{
SELECT id FROM Person where name = $name;
}
オプション2:
$sql = "SELECT id FROM Person where name = $name";
if ($surname) { $sql = $sql + " and surname = $surname"; }
私は最良の選択肢は、パラメータが増加する可能性がしながら、第二の選択肢だと思うが、私はかどうかを知りませんクエリで導入する柔軟なパラメータは、nullパラメータに依存する可能性があります。
私の英語のために残念です。
ありがとうございます。
'... name = $ nameと($ surname IS NULLまたはsurname = $ surname)'です。 – jarlh
最良の解決策は、準備されたステートメントと@ jarlhを切り詰めたコードを使用することです – Jens