Как сравнить значение с перечнем значений и получить результат в mysql?

Здравствуйте.
Сейчас движок сравнивает вот так:
$filter = $db->placehold(' AND p.sizes in(?@) ', (array)$filter['sizes']);

Значение p.sizes - 10,50,20,1,59
Значение $filter['sizes'] идентичное

Результат - выводится тот товар, у которого полностью идентично совпадает значение столбца sizes с запросом $filter.sizes

Как-бы реализовать так, чтобы если запрос $filter['sizes'] равнялся например не полностью идентично, а например - 59 то выводился-бы результат, в перечни p.sizes которого присутствует 59?
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ответы на вопрос 1
Exploding
@Exploding
wtf?
Единственное, что может подойдет в таком случае, это - добавление "," в начало и конец строки. Т.е. чтобы строка выглядела так: ,10,50,20,1,59,
Тогда можно наверняка будет знать где начало, а где конец значения и искать типа так как-то:
select ... where `sizes` RLIKE(',10,|,50,|,30,')
или
select  ... where `sizes` like '%,10,%' or `sizes` like '%,50,%' or `sizes` like '%,30,%'

Может быть и как-то и по другому можно, но я хз.
А вообще по-хорошему - реорганизуйте структуру хранения данных и приведите все к правильному виду. Да и скорость будет получше.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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