这是我的疑问:
$sql = "SELECT * FROM Users WHERE FirstName IN ($input) OR Name IN ($input)";

$ input看起来像这样:
'input1', 'input2', 'input3'

当我搜索" fischer"它找到一个名为" Fischer"的用户。 但是当我搜索" fisch"没有找到任何条目。
有没有办法反转" IN语句(WHERE $输入IN(NAME)),以便我可以检查是否有任何不同的输入是任何名称的一部分?
感谢任何想法。
答案 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%'";