最大 3 つのコマンド ライン引数を MySQL クエリに渡すスクリプトがあります。照会しているテーブルは、プロのスポーツ選手と彼らがプレーするスポーツのリストです。コマンド ラインでの私の引数は、-s (スポーツの場合) -i (整数の場合)、および -l (文字の場合) に設定されています。
-s は直接文字列検索 (つまり、'Hockey' はスポーツの下にリストされている 'Hockey' を持つプレーヤーを返します) であり、-i は整数であり、検索は名前が以下の文字数のプレーヤーを返すことになっています。 my integer、-l は文字で、名前が a と '-l' の間の文字で始まるプレーヤーが検索で返されます。
現在、私の検索は次のとおりです。
"Select * from Players_Sport where Sport like '$lsport_search' AND length(Player)<='$linteger_search' AND Player between 'a%' and '$lletter_search%'"
現在、これは整数と文字の引数が空白でない場合に機能しますが、スポーツ フィールドが空白の場合にも機能します。それが機能しない理由を理解しています (length(Player) < null および a% と null の間の Player をチェックしています)。可能なすべての反復の条件を書かずに動作させるためにできることはありますか?