Есть ячейка в БД 'cat' где данные с разделителем "1,12,144" Мне надо сделать выборку: Код (Text): $cat = 1; mysql_query ("SELECT * FROM table WHERE cat=$cat"); LIKE не пойдет, потому что "1" есть во всех трех числах
связь один ко многим делается нетак а теперь только боль - типа Код (PHP): SELECT * FROM table WHERE cat LIKE '1' OR cat LIKE '1,%' OR cat LIKE '%,1' OR cat LIKE '%,1,%'
Re: Выборка по условию из БД, если значения через разделител во-первых, хранить данные в таком виде это срань господня! это НЕ по реляционному формат годится для быстрого вывода, но не для поиска!!! во-вторых, специально для шаловливых чудаков в майсиквеле есть функция FIND_IN_SET(). встроенные функции как правило быстрее и надежнее, чем какие-то сложные выражения.
Re: Выборка по условию из БД, если значения через разделител А как хранить, если мне надо конкретный продукт по нескольким категориям привязать?
Re: Выборка по условию из БД, если значения через разделител отдельная таблица связей id_product,id_category
Re: Выборка по условию из БД, если значения через разделител Он в этом случае, почему-то только первое значение из множества видит Код (Text): WHERE cat IN ('$cat')
Re: Выборка по условию из БД, если значения через разделител Дык, елы-палы ))) Ты видишь разницу между списком значений и строкой?
Re: Выборка по условию из БД, если значения через разделител До сего момента, думал, что да Добавлено спустя 19 минут 52 секунды: Re: Выборка по условию из БД, если значения через разделитель Да, что не так с этим WHERE IN?
Re: Выборка по условию из БД, если значения через разделител чувак, если у тебя в $cat они идут через запятую, как у меня, то и пиши без кавычек, как я
Re: Выборка по условию из БД, если значения через разделител В $cat нету запятой, там значение, которое надо найти в строке cat в БД, где как раз и через запятую
Re: Выборка по условию из БД, если значения через разделител а, тогда я тебя не понял, прости это не один ко многим. это капец. =) один ко многим это когда у тебя есть таблица с полями "кто" и "к кому". и всё. и по ней строятся выборки.
Re: Выборка по условию из БД, если значения через разделител Что неправильно в таком случае? Код (Text): WHERE FIND_IN_SET ('$cat', cat)
Re: Выборка по условию из БД, если значения через разделител так вроде норм. ты просто попробуй. если есть сомнения — читай доку. "не так" тут не синтаксис, а сам подход. это выражение НЕ будет использовать индекс, оно полюбому будет перебирать все строки. и если строк много, то будут тормоза.
Re: Выборка по условию из БД, если значения через разделител Лайки, лайки, лайки, целая чукотская упряжка. Немножко уменьшить количество боли можно так: where ','+cat+',' like '%,1,%' А вообще согласен - не дело так писать.
Re: Выборка по условию из БД, если значения через разделител Да, я уже понял, что сам себя в тупик загнал, тем более у меня из-за этого дальше логика ломаться начала. Буду переписывать. Всем спасибо, за участие!