查询看起来像这样:
$query = "
SELECT $field1, $field2, $field3, $field4, $field5
FROM . $usertable
WHERE $field1 = '$a'
AND $field2 = '$b'
AND $field3 = '$c'
AND $field4 = '$d'
AND $field5 = '$e'
";
现在
- a 是 varchar(20)
- b 是 double
- c 是一个整数
- d 是一个整数
- e 是 varchar(25)
- a - e 都是用户输入
全文搜索不是一个选项,因为即使不完全匹配,搜索也必须始终返回结果。
最佳答案
使用LIKE
:
$query = "
SELECT $field1, $field2, $field3, $field4, $field5
FROM $usertable
WHERE $field1 LIKE '%$a%'
AND $field2 LIKE '%$b%'
AND $field3 LIKE '%$c%'
AND $field4 LIKE '%$d%'
AND field5 LIKE '%$e%'
";
仅当所有搜索条件都匹配时,上述解决方案才会为您提供结果。
如果您要查找至少一个匹配项,请使用 OR
而不是 AND
。
$query = "
SELECT $field1, $field2, $field3, $field4, $field5
FROM $usertable
WHERE $field1 LIKE '%$a%'
OR $field2 LIKE '%$b%'
OR $field3 LIKE '%$c%'
OR $field4 LIKE '%$d%'
OR field5 LIKE '%$e%'
";
在上述两种情况下,如果没有匹配的搜索条件,查询可能不会返回结果。
结果将是一个空集。
关于php - 多字段查询搜索,无需全文搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11166329/