Q&A

回答の並べ替え:
投稿新規に質問を投稿する

SQLアクションについて

c_taka c_taka

2021-03-03 11:26

SQLアクションを利用して検索結果からテーブルデータを絞り込んで表示するという処理を作成したいです。
(検索項目に記載がないものは検索条件から除外し、記載があるものは検索条件で使用する処理)
また、検索条件には複数条件が入力可能な項目があり、その検索にはIN句を使用したいのですが、どのようにすればできるでしょうか?


例)検索項目はA,B,Cの項目(それぞれ複数条件が入力可能)があり、Aに2つ、Bに3つ入力されている状態。
WHEREに次のSQLを記述しましたが、Cの条件が空白になる為エラーになってしまいました。

where A IN (%Aのパラメータ%) and B IN (%Bのパラメータ%) and C IN (%Cのパラメータ%)

c_taka c_taka
回答ありがとうございます。
IN句でくくっていた検索値をORで結合するように修正して、求める検索条件を作成できました。
Yexiongmao Yexiongmao
こんにちは。

IN句を用いる場合は、パラメータのリストがブランクの場合、検索結果がブランクになるので、ANDで繋いだ場合空白条件があると検索結果を返さないということになりますね。

回答になっているかはわかりませんが、ユーザーの立場で考えたとき検索条件を正確且つ大量に入力するのは厳しいし、SELECT文の検索結果表示でどの程度の精密さが必要なのかなど、ユースケースとアプリの構成で解決するのが正解のような気がします。
ORではだめなのか、或いはすべての検索値を「LIKE %~%」でANDで結合する(LIKE %%は全てにヒットする)ことを検討してみてはいかがでしょうか?