我有一个棘手的问题,我想看看是否有更简单的方法来解决它。
我有让我们说
$numbers= $_GET['numbers']; //resulting in $numbers=array(1,2,3)
- 数组中的计数可能因 $_GET 值而异...
- 这些需要使用 '%". $number. "%' 进行搜索,因为行中可能有多个数字,用逗号分隔
我的理想结果 将使用以下命令搜索 $numbers(1,2,3):
SELECT * FROM database WHERE numbers LIKE('%1%' OR '%2%' OR '%2%')
最佳答案
无需为数组的每个元素注入(inject)许多 OR
运算符。相反,您可以使用 rlike (the regex matcher operator of MySQL)并像这样在很大程度上简化您的代码:
$numbers = array(1,2,3);
$sql = 'SELECT * from `database` WHERE number rlike "^'.implode('|', $numbers).'$"';
// $sql becomes: SELECT * from `database` WHERE number rlike "^1|2|3$"
关于php - 使用 OR 和 LIKE % 查询 PHP foreach?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10679194/