2011-04-11 66 views
1

我想序列化數組內搜索,數據是這樣的:裏面搜索序列數據與MYSQL

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%'"); 

但它不工作,任何解決方案? 謝謝。

+1

http://stackoverflow.com/questions/31151291/mysql-get-all-distinct-values-from-field-serialized通過php/36129622#36129622 – 2016-03-21 11:19:56

回答

4

您的查詢格式有點不對。如果你試圖通過$id_serialize到您的查詢,它需要像這樣被格式化:

$id_serialize = $id; 
$req = requette("SELECT id FROM table WHERE col LIKE '%" . $id_serialize . "%'"); 
+0

非常感謝你的工作。 – Tahola 2011-04-11 19:09:56

0

您正在編譯$id_serialize,但在查詢字符串中使用的是$serialize,因此您正在尋找... LIKE '%%',很有可能。

+0

沒有對不起,我只是編輯我的代碼發佈在這裏,在我的應用程序中,我使用的是好的。 – Tahola 2011-04-11 19:07:31

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 index