Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск по массиву в запросе
 
 автор: tima2010   (28.06.2012 в 13:37)   письмо автору
 
 

Привет!
Возможно ли прямо при запросе к базе раскрыть массив записанный при помощи функции serialize и проверить присутствует ли там искомое значение или нет.

К примеру запрос (не корректный):

<?php
$query 
"
SELECT * FROM table 
WHERE '1' IN (unserialize(my_array))
"
;
?>


На PHP:

<?php
$q 
= array('1','2','3'); // массив
$w serialize($q); // для записи в базу

// в запросе нужно выполнить что то типа этого

$e unserialize($w); 
if(
in_array('1'$e)) {
    echo 
'true';
} else {
    echo 
'false';
}
?>

  Ответить  
 
 автор: Valick   (28.06.2012 в 16:04)   письмо автору
 
   для: tima2010   (28.06.2012 в 13:37)
 

Возможно ли прямо при запросе к базе раскрыть массив
нет

  Ответить  
 
 автор: Sfinks   (28.06.2012 в 16:27)   письмо автору
 
   для: Valick   (28.06.2012 в 16:04)
 

Зачем же так категорично?
Сериализованный массив - это обычная строка. И искать в ней можно все что угодно.
Единственное, что подход "от противного" должен быть.
Т.е. не "раскрыть массив", а "сериализовать элемент массива".

Например нужно найти строки, где в массиве есть элемент со значением "строка".
Это можно сделать, например, запросом:
SELECT * FROM tbl WHERE fld_array LIKE '%s:6:"строка";%'

Можно и через INSTR вместо LIKE.

  Ответить  
 
 автор: Valick   (28.06.2012 в 17:29)   письмо автору
 
   для: Sfinks   (28.06.2012 в 16:27)
 

Зачем же так категорично?
чтоб не повадно было
хотите мое личное мнение?
нечего сериализованным данным делать в бд, тем более тем среди которых нужно что-то искать

  Ответить  
 
 автор: Sfinks   (29.06.2012 в 00:29)   письмо автору
 
   для: Valick   (28.06.2012 в 17:29)
 

Это вопрос десятый.
Кстати, мое мнение с вашим совпадает.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования