私はフロントエンドのバックグラウンドから来ており、nullパラメータを受け入れることができるストアドプロシージャを作成しようとしています。簡略化したバージョンは次のとおりです。
CREATE PROCEDURE get_item(IN item_id INT(11))
BEGIN
SELECT * FROM item a WHERE a.item_id = IF(item_id IS NULL, a.item_id, item_id);
END;;
したがって、nullのSELECT
場合はすべてを実行し、それ以外の場合は句を適用します。これはそれを行う方法ですか?うまくいくようですが、もっと良い方法があるかどうかはわかりません。item_id
WHERE
私もこのように書くことができると思います:
SELECT * FROM item a WHERE ((item_id IS NULL) OR (a.item_id = item_id));