我有一个搜索页面,其中包含多个用于创建细化搜索的字段。每个字段都是可选的。我正在尝试开始制作我的 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;
每当我提供 anindicator
和 anindtypeid
时,搜索就可以正常工作。但是,当我将该indtypeid
字段留空并将变量设置为*
(作为其默认值)时,查询不会返回任何结果。我已经尝试手动处理查询,但它似乎不喜欢*
or%
符号。基本上,如果只指定了一个指标而没有indtypeid
指定,我想返回 all 的所有指标indtypeids
。
我确定我遗漏了一些小东西,但我将不胜感激可以提供的任何帮助。我可能一开始就错了。