PHP数组匹配MYSQL字符串

标签 php mysql arrays

我有一个颜色数组,想匹配MYSQL中的颜色行,

只要颜色行与数组中的其中一种颜色匹配,则将其取出。

下面的 $colorArray 应该匹配 id 2 和 3,因为这些行包含黄色和蓝色

$colorArray = array('yellow','blue');

+------+---------+------------+
| id   | product | color      |
+------+---------+------------+
|    1 | tShirt  | red,green  |
|    2 | jeans   | yellow,red |
|    3 | shorts  | black,blue |
+------+---------+------------+

我只想要一个 MySQL SELECT 语法,我知道它可以用 PHP array_intersect 来完成一些过滤器,但由于某些原因我不想这样做。

那有可能吗?

最佳答案

我认为您在组合 inLike %S% 时遇到了问题,所以 REGEXP可能更有效率,但您必须对其进行基准测试才能确定,例如

$colorsStr = implode('|', $colorArray); // => 'yellow|blue'
$sql = "SELECT * FROM <your_table_name> WHERE REGEXP '" . $colorsStr . "'";

关于PHP数组匹配MYSQL字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34707198/

相关文章:

php - 回收或重用变量是否可以接受?

php - 使用 ajax 在点击时编辑特定的 div

php - 使用 preg_replace 删除特定的 html 标签而不删除内容

php - 如何在 Controller 中正确执行 symfony2 中的 If 语句

php - 在 WHERE 子句中使用 mysql concat()?

java - MySQL 字段类型

javascript - 如果我的 props 在 React 中发生变化,如何更新状态以强制重新渲染?

javascript - 使用索引和值将元素添加到现有对象

javascript - Google Apps 脚本返回数组值并在 javascript 函数中使用它们

php - 检测用户是否在代理服务器后面