Задать вопрос

Как найти значение в serialize массиве?

Есть например вот такой массив в mysql
a:3:{i:0;s:1:"9";i:1;s:2:"12";i:2;s:2:"13";}
Можно ли как то определить есть ли в нем значение '9' не преобразуя его в php-массив ?
То есть на этапе select.

Но нужно найти именно значение, потому что если будет что то вроде
a:3:{i:0;s:9:"11"}
и найдется 9, это не подойдет.
  • Вопрос задан
  • 355 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
Melkij
@Melkij
DBA для вашего PostgreSQL?
Приведите хранение данных в нормальную форму. И будет вам простой и быстрый поиск на уровне субд.
Ответ написан
Комментировать
LittleFatNinja
@LittleFatNinja
горе девелопер, любитель лютой садомии
WHERE LOCATE('"5"', col) != 0
Ответ написан
Комментировать
sanchezzzhak
@sanchezzzhak
Ля ля ля...
лучше храните данные в JSON
mysql 5.6+ позволяет искать данные по json

хотя есть вот занятный вариант
https://github.com/junamai2000/mysql_unserialize_php
не уверен что работает, вроде нужно компилировать это чудо как плугин
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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