0

いくつかの入力パラメーターを受け取るクエリを作成しようとしています。注意すべき点がいくつかあります...

  1. すべてのパラメーターをクエリに渡す必要があるわけではありません。
  2. パラメーターがクエリに渡されない場合でも、とにかく渡す必要がありますNULLか?
  3. パラメータが渡されない場合、パラメータを含めないようにするにはどうすればよいですか?

だから、あなたが持っていると言う...

IN name VARCHAR(30),
IN age VARCHAR(2),
IN address VARCHAR(50)

そして、あなたは名前だけで検索したい...

SELECT * FROM Table WHERE 
(
NAME LIKE CONCAT(name, '%')
);

年齢が渡されていないため、これは機能していないようです。または、年齢ではなく名前と住所が渡された場合はどうなるでしょうか。どうすればそれを構築できますか?

4

3 に答える 3

1

以前のポスターの状態として、未使用のパラメーターには NULL を渡します。次に、次のようにクエリを構成します...

SELECT * FROM Table WHERE 
(
  ((nameParameter IS NULL) OR (NameColumn LIKE '%' + NameParameter + '%'))
  AND 
  ((ageParameter IS NULL) OR (AgeColumn = ageParameter))
  AND 
  ((addressParameter IS NULL) OR (AddressColumn = addressParameter))
)
于 2013-05-31T15:34:06.980 に答える