反转IN声明

时间:2017-12-10 18:04:06

标签: php sql

这是我的疑问:



$sql = "SELECT * FROM Users WHERE FirstName IN ($input) OR Name IN ($input)";




$ input看起来像这样:



'input1', 'input2', 'input3'




当我搜索" fischer"它找到一个名为" Fischer"的用户。 但是当我搜索" fisch"没有找到任何条目。

有没有办法反转" IN语句(WHERE $输入IN(NAME)),以便我可以检查是否有任何不同的输入是任何名称的一部分?

感谢任何想法。

2 个答案:

答案 0 :(得分:0)

您需要查看通配符:

SELECT * FROM Users WHERE FirstName IN ('fisch%') OR Name IN ('fisch%');

会找到Fischer - %将充当通配符。

BTW:我希望$input不是用户提供的输入:否则你会对SQL注入攻击持开放态度。

答案 1 :(得分:0)

您可以使用like运算符搜索名称。

  $sql= " SELECT * FROM Users 
WHERE FirstName LIKE '%$input' OR Name LIKE '%$input' OR FirstName LIKE '$input%' OR Name LIKE '$input%'";