我正在尝试构建一个查询,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
or中匹配city_name
。 - 如果
$optional
有一个值,那么返回的记录应该匹配$keyword
并且$option
- 如果
$districtId
有一个值,那么结果应该匹配 3 个变量值 ($keyword
,$option
,$districtId
) - 最后,如果
$cityId
与其他 3 个值一起具有一个值,则返回的结果应匹配所有 4 个变量的值。
这些条件来自我的搜索页面。$keyword
是文本框中的值,需要关键字才能开始搜索。这就是为什么我说它总是有价值的。其他 3 个值来自允许在需要时选择项目的选择框。
我试着做查询,没问题。但我真的对这个WHERE
条款感到困惑。WHERE
到目前为止,上面的代码来自我的条款。但我无法得到我想要的结果。