开发者

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜