絞り込み検索を作成するために使用される複数のフィールドを持つ検索ページがあります。すべてのフィールドはオプションです。適切な変数が与えられた場合に機能するようにSQLクエリの作成を開始しようとしていますが、問題が発生しています。
これが私が現在持っているSQLクエリです:
SELECT
indicator.indid,
indicator.indicator,
indtype.indtype,
provider.provider,
report.report,
actor.actor
FROM
actor,
indicator,
indtype,
report,
provider
WHERE
indicator.indtypeid = indtype.indtypeid
AND indicator.actorid = actor.actorid
AND indicator.reportid = report.reportid
AND report.providerid = provider.providerid
AND indicator.indicator LIKE '%$indicator%'
AND indicator.indtypeid = $indtypeid;
indicator
とを指定するときはいつでもindtypeid
、検索は問題なく機能します。ただし、indtypeid
フィールドを空白のままにし、変数を*
(デフォルト値として)に設定すると、クエリは結果を返しません。クエリを手動で試してみましたが、*
または%
記号が気に入らないようです。基本的に、インジケーターのみが指定されていて、noindtypeid
が指定されている場合は、すべてのインジケーターを返しますindtypeids
。
私は何かマイナーなものが欠けていると確信していますが、提供できる支援をいただければ幸いです。そもそもこれはすべて間違っているのかもしれません。