Как найти значение в 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, это не подойдет.
  • Вопрос задан
  • 303 просмотра
Пригласить эксперта
Ответы на вопрос 3
Melkij
@Melkij
PostgreSQL DBA
Приведите хранение данных в нормальную форму. И будет вам простой и быстрый поиск на уровне субд.
Ответ написан
LittleFatNinja
@LittleFatNinja
горе девелопер, любитель лютой садомии
WHERE LOCATE('"5"', col) != 0
Ответ написан
sanchezzzhak
@sanchezzzhak
Ля ля ля...
лучше храните данные в JSON
mysql 5.6+ позволяет искать данные по json

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

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

Войти через центр авторизации
Похожие вопросы