0

クエリは次のようになります。

$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 は int です
  • d は int です
  • e は varchar(25) です
  • a - e はすべてユーザー入力です

全文検索はオプションではありません。完全一致でなくても常に結果が返される必要があるためです。

4

1 に答える 1

2

使用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%'  
";  

上記のソリューションでは、すべての検索条件が一致した場合にのみ結果が得られます。
一致するものが少なくとも1つある場合は、ORoverを使用して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%'  
";  

上記のどちらの場合も、一致する検索条件がない場合、クエリは結果を返さない可能性があります。
結果は空のセットになります。

于 2012-06-23T10:33:09.923 に答える