我在MySql上有一个奇怪的问题。我有一个名为adds的表,该表有places字段,其中存储了地方id。位置字段值等于地点ID的序列化数组(e.t.c数组(' 1',' 3',' 4'))。我也有搜索表单,我想一次搜索多个字段。 例如:我想找到带有ID的地方(' 3',' 6',' 8'等等)。 当我使用像这样的mysql查询时会抛出错误。
$val=array('3', '6', '8');
mysql_query("Select * from add where active='active' && array_intersect(unserialize(places))");
我该如何查询?可以在MySql中使用存储过程或函数吗?
答案 0 :(得分:0)
您应该使用implode
将其变为可用的字符串。假设您的值数组完全值得信赖(即不是来自用户提交的表单)
$val=array('3', '6', '8');
mysql_query("Select * from add where active='active' AND ID IN (" . implode(',', $val) . ")";