Я хотел бы искать внутри сериализованного массива, данные выглядят так:
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%'");
Но это не работает, какое-либо решение? Благодарю.
Ваш запрос отформатирован немного неправильно. Если вы пытаетесь передать $id_serialize
в свой запрос, его необходимо отформатировать следующим образом:
$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)";
…
полевые keys
имеют индекс FULLTEXT
Вы строите $id_serialize
, но используете $serialize
в строке запроса., Поэтому вы ищете ... LIKE '%%'
, скорее всего.