我想搜索序列化数组,数据看起来像:
a:7:{i:0;s:2:"34";i:1;s:1:"0";i:2;s:2:"42";i:3;s:2:"33";i:4;s:2:"48";i:5;s:2:"62";i:6;s:2:"47";}
我试过了:
$id_serialize = '"'.$id.'"';
$req = requette("SELECT id FROM table WHERE col LIKE '%$id_serialize%'");
但它不起作用,任何解决方案? 感谢。
答案 0 :(得分:4)
您的查询格式有点错误。如果您尝试将$id_serialize
传递给查询,则需要将其格式化为:
$id_serialize = $id;
$req = requette("SELECT id FROM table WHERE col LIKE '%" . $id_serialize . "%'");
答案 1 :(得分:2)
foreach ($array as $item) $keys[]=md5(serialize($item));
$sql="insert into table set col='".serialize($array)."', `keys`='".implode(' ',$keys)."'";
...
$item=5;
$key=md5(serialize($item))
$sql="select id from table where MATCH (`keys`) AGAINST ('$key' IN BOOLEAN MODE)";
...
字段keys
具有FULLTEXT索引
答案 2 :(得分:0)
您正在构建$id_serialize
,但在查询字符串中使用$serialize
。因此您最有可能搜索... LIKE '%%'
。