Задать вопрос
@n1ger
html+css

Как выбрать строки из БД, которые в одной ячейке содержат определенный параметр?

Ячейка внутри себя содержит массив, а мне надо выбрать все строки, которые имеют в этой ячейки определенную пару:ключ.
Ячейка имеет такого рода массив в себе

a:2:{s:5:"items";a:1:{s:28:"FOT_61555721_139341653498ub6";a:25:{s:10:"order_step";i:2;s:6:"img_id";s:8:"61555721";s:7:"base_id";s:1:"6";s:3:"qnt";s:1:"1";s:8:"img_from";s:3:"FOT";s:8:"url_from";s:0:"";s:9:"size_unit";s:2:"sm";s:2:"x1";s:1:"0";s:2:"y1";s:1:"0";s:2:"x2";s:3:"290";s:2:"y2";s:3:"209";s:1:"w";s:3:"290";s:1:"h";s:3:"209";s:2:"uw";s:3:"250";s:2:"uh";s:3:"180";s:7:"crop_x1";d:0;s:7:"crop_y1";d:0;s:10:"crop_width";d:5272.727272727273;s:11:"crop_height";d:3788;s:3:"ref";s:1:"0";s:2:"bw";s:1:"0";s:5:"sepia";s:1:"0";s:10:"base_price";s:3:"145";s:10:"colorproof";i:0;s:10:"item_price";d:693;}}s:3:"sum";d:693;}

Вот мне надо выбрать все строки, которые в этой ячейки имеют s:7:"base_id";s:1:"6";
  • Вопрос задан
  • 382 просмотра
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 5
FanatPHP
@FanatPHP
Чебуратор тега РНР
Никак.
В базе данных нельзя хранить сериализованные данные.
Ты должен перед записью декодировать их, и записать все значения в соответствующие им ячейки.
И потом выбирать нужные строки обычным способом.
Ответ написан
Karponter
@Karponter
JSON хранить в базе в Вашем конкретном случае (хранение заказа со списком товаров и прочим) не есть хорошо. Попробуйте перестроить базу. Хранить в таблице сам заказ и его общую стоимость к примеру, и подвязывать его идентификатор к связующей таблице а-ля GOODS-ORDER много ко многому.
Ответ написан
@IceJOKER
Web/Android developer
WHERE field LIKE '%s:7:"base_id";s:1:"6";%'

select * from table WHERE field LIKE '%s:7:"base_id";s:1:"6";%'
^^^
Почему у меня не ругается синтаксис ??? Если вы рукожоп, то платите тем у кого руки растут оттуда
b91d86ff7d.jpg
Ответ написан
@Centrino
Пробуйте не через LIKE, а через REGEXP
Ответ написан
Комментировать
@n1ger Автор вопроса
html+css
3fbe51f0f99348cc97bf27f1373b9143.jpg
И что в этом запросе не так как у вас, нерукожоп IceJOKER ?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы