我遇到一个问题,我在数据库中有一个表,以这种形式1,3,4,55,6,22,44
存储值,我有一个从客户端动态的数组,它可以像2,55,33,1,33,99
如果字段之间至少有任何值匹配,我想进行查询以选择此字段。
如果在数据库值中选择字段,则存在24
并且我从用户数组中获得23,24,55,66
我认为可以使用find_in_set()
或IN
关键字
答案 0 :(得分:1)
在列中创建逗号分隔值不是一个好习惯。通常人们认为这是最简单和最简单的方法,但事实并非如此。搜索和修改将非常困难。如果您要搜索单个项目,则可以使用查找集合;在你的情况下,你可以这样做。使用|
内爆数组并在正则表达式中使用它。
<?php
$arr = Array(2,55,33,1,33,99);
echo 'select * from table where CONCAT(",", `field`, ",") REGEXP ",('.implode("|",$arr).'),"';
?>
答案 1 :(得分:0)