php - 使用 OR 和 LIKE % 查询 PHP foreach?

标签 php mysql arrays sql-like

我有一个棘手的问题,我想看看是否有更简单的方法来解决它。

我有让我们说

$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/

相关文章:

mysql - 连接两个表后如何显示5个最大值?

Python:迭代数组的行和列

php - Jquery 和 CSS 切换——这可能吗?

php - 如何在php中循环传递数组?

PHP/MySQL 插入行然后得到 'id'

javascript - 过滤不包含来自其他数组的字符串的字符串?

arrays - Powershell 返回数组第二项的文件大小;第一和第三都很好

php - PHP 中缺少一些 CURL 常量

php - 如何以相反的顺序回显 MySQL 结果?

PHP比较两个数组并得到匹配的值而不是差异