| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > Как написать sql между двумя полями типа set? |
| Автор: taral 22.10.2014, 11:28 |
| Допустим у меня есть таблица id value (type set) 1 a,b 2 r,d,g,h,a 3 g,s,e,a 4 k,l,p,o И есть набор значений ['a','b','s','u','t'] Мне необходимо с таблицы выбрать те записи где есть хотя бы одно совпадение элемента с моего списка и с списка таблицы. К примеру в строке 1 элемент 'a' присутствует и в моем списке. И дополнительная задача. Нужно что бы в моем списке присутствовали все значения с списка строки таблицы. По этому примеру проходит только первая строка где элементы 'a' и 'b' есть в моем списке. Спасибо за внимание. У меня пока нет идей как это лучше реализовать. |
| Автор: Romikgy 22.10.2014, 12:12 | ||
|
| Автор: taral 22.10.2014, 13:10 | ||
Такой способ запроса я знаю. В моем случае он не подойдет. Поскольку у меня 'value' не одно значение, а набор. Причем условие пройдет если любое из значений с таблицы будет в списке. Я выше все подробно описал. Спасибо за ответ. |
| Автор: Akina 22.10.2014, 15:24 |
| Если набор значений также поступает в виде списка - одним запросом это не решается. Самый простой выход - слить искомые значения во временную таблицу, но по одному. Самый правильный выход - нормализовать структуру БД и уйти от хранения CSV-set. |