我有一个颜色数组,想匹配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
来完成一些过滤器,但由于某些原因我不想这样做。
那有可能吗?
最佳答案
我认为您在组合 in
和 Like %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/