Виталий Я.
659 сообщений
#14 лет назад
Очередная задача :
Есть 2 поля которые нужно сравнить, данные в обеих сериализированы РНР, результатом сравнения должна быть одна строка.
Условие примерно следущие: если в десериализированном масиве с первого поля есть хоть одно значение из десериализированого второго - то такая строка подходит.
Возможно ли заставить проверить такое условие MySQL , и если да, то как?
Максим Ф.
3195 сообщений
#14 лет назад
Может ли MySql делать сериализацию/десериализацию? Очень вероятно, что нет. Значит и ответом будет - нет.
Вадим Т.
3240 сообщений
#14 лет назад
Да, возможно. Для этого понадобится написать функцию MySQL для десериализации и для сравнения.
Но я бы так не делал.
Так как это будет довольно сложная в реализации функция, и медленно работающая, так как придется посимвольно разбирать строки с сериализованными данными, и учитывать многочисленные нюансы PHP-сериализации.
Антон С.
1316 сообщений
#14 лет назад
Xazzzi, придется прогонять данные выборки через PHP функцию.
Самому изобретать велосипед тут не вариант.
Николай М.
1895 сообщений
#14 лет назад
Намного проще сделать каскадную таблицу и все
лучше опишите задачу, может делаете технически неверно просто)
Роман Беляев
16382 сообщения
#14 лет назад
Цитата ("MMM_Corp"):
может делаете технически неверно просто)


Сначала сериализировать а потом пытаться сравнивать? Да что вы!

Xazzzi, схема БД у вас не корректная. Не надо изобретать велосипед и городить костыли. Надо сравнивать - храните в пригодном для сравнения виде.
Сергей К.
1649 сообщений
#14 лет назад
frig, +1
Если уж так и хранили, то проверку делайте на PHP.
Николай М.
1895 сообщений
#14 лет назад
Мне все таки хочется услышать задачу на более высоком уровне абстракции, типа "делаю фильтрацию товара по критериям" и т.д., просто не понимаю для чего особо нужна сериализация, если по сути без нее итак неплохо живут)
Роман Беляев
16382 сообщения
#14 лет назад
Оффтопик
MMM_Corp, обычно же как бывает. Была задача хранить параметры параметров - а чего там думать то? Давайте это все прямо массивом сериализуем и прямо в базу и сложим. Нормально же - раз два и готово. А потом задача уточняется или это чужой проект и вроде как и известно как сделать это правильно - но очень не хочется тратиться время на правку модели - хочется так вот как-то по хитрому велосипедно/костыльно сделать, чтобы заработало. Может тут и другой случай, но картинка что я описал выше у меня перед глазами очень явно стоит.
Николай М.
1895 сообщений
#14 лет назад
Можно сделать как таблицу списков смежности, ведь теже яйца - ключ, значение + парент, мегаплюс - админить проще, получать по вюхе, в моделе уже конвертировать в массив или повыше еще в контролере) ведь как админить такую кашу? как что-то искать? это сразу громадный минус получается