【发布时间】:2013-02-20 01:40:39
【问题描述】:
我正在尝试构建一个查询,到目前为止这是它的WHERE 子句:
WHERE ( s.subject_name LIKE '%$keyword%' OR
c.city_name LIKE '%$keyword%' OR
o.option_name LIKE '%$option%' OR
d.district_id = $districtId OR
c.city_id = $cityId
)
我的实际情况是:
-
$keyword应该始终保存一个值。其他 3 个可能没有。 - 如果只有
$keyword有值,返回的记录应该匹配$keyword在subject_name或city_name。 - 如果
$optional有一个值,那么返回的记录应该匹配$keyword和$option - 如果
$districtId有一个值,那么结果应该匹配3个变量值($keyword、$option、$districtId) - 最后,如果
$cityId与其他 3 个有一个值,返回的结果应该匹配所有 4 个变量的值。
这些条件来自我的搜索页面。 $keyword 是文本框中的值,需要关键字才能开始搜索。这就是为什么我说它总是有价值的。其他 3 个值来自允许在需要时选择项目的选择框。
我尝试进行查询,没问题。但我真的对WHERE 子句感到困惑。以上代码来自我的WHERE 子句。但我无法得到我想要的结果。
【问题讨论】:
-
期望的结果是什么,你得到了什么?
-
如果五个中至少有一个匹配,则输出
-
@PreetSangha 我在发布之前检查了该链接。但我不能将其应用于此。
标签: php mysql where-clause