检查是否存在两个以逗号分隔的值mysqli

时间:2015-11-19 03:30:26

标签: php mysql mysqli

我遇到一个问题,我在数据库中有一个表,以这种形式1,3,4,55,6,22,44存储值,我有一个从客户端动态的数组,它可以像2,55,33,1,33,99

如果字段之间至少有任何值匹配,我想进行查询以选择此字段。

如果在数据库值中选择字段,则存在24并且我从用户数组中获得23,24,55,66

我认为可以使用find_in_set()IN关键字

来完成此操作

2 个答案:

答案 0 :(得分:1)

在列中创建逗号分隔值不是一个好习惯。通常人们认为这是最简单和最简单的方法,但事实并非如此。搜索和修改将非常困难。如果您要搜索单个项目,则可以使用查找集合;在你的情况下,你可以这样做。使用|内爆数组并在正则表达式中使用它。

<?php 
    $arr = Array(2,55,33,1,33,99);
    echo 'select * from table where CONCAT(",", `field`, ",") REGEXP ",('.implode("|",$arr).'),"';
?>

答案 1 :(得分:0)

要比较两个数组,您应该使用:

array_intersect()
将表数据转换为数组后

Reference