我正在尝试根据用户输入创建动态搜索查询。
要求:
- 用户可以填写零个、一些或所有字段。
- 查询在表格中寻找符合所有要求的记录。
我已经做了调研,发现有多种方法可以实现这个目标。但是它们中没有一个能够工作,而且如果它们能够工作,它们也远非实用。
尝试:
目前我正在创建以下查询:
SELECT *
FROM assignments
WHERE (id = $id OR id = '')
AND (field1 = $field1 OR field1 = '')
这个查询是有效的,但只有在填写了所有字段后才有效。
我从一个stackoverflow文章中得到了这个答案,但我现在找不到了。文章中说:
如果用户填写了输入字段,它将检查第一个规则"id=$input",如果用户没有指定任何输入,它将检查"id='' ",当它检查它时,它将返回所有内容。因为它会转义空搜索规则。
但正如你可能已经知道的,这并不起作用。
你认为我应该如何处理这个问题?