Search inside serialize data with MYSQL
I'd like to search inside serialized array, data look like开发者_如何学编程 :
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";}
I tried this:
$id_serialize = '"'.$id.'"';
$req = requette("SELECT id FROM table WHERE col LIKE '%$id_serialize%'");
But it's not working, any solution? Thanks.
Your query is formatted a little wrong. If you are trying to pass $id_serialize
to your query, it needs to be formatted like this:
$id_serialize = $id;
$req = requette("SELECT id FROM table WHERE col LIKE '%" . $id_serialize . "%'");
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)";
...
field keys
has FULLTEXT index
You're building $id_serialize
, but are using $serialize
in the query string., so you're searching for ... LIKE '%%'
, most likely.
精彩评论