Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с запросом на выборку / 11 сообщений из 11, страница 1 из 1
12.06.2005, 19:30
    #33113745
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом на выборку
есть таблица

Код: plaintext
1.
2.
3.
4.
5.
id         name               value

 1           Андрей              1 , 2 , 5 
 2           Кира                2 , 8 , 1 
 3           Олег                3 
 4           Сергей              1 , 3 , 4 , 5 , 6 

И есть массив например
$a = array();
$a = (1,5);

нужно сделать выборку чтоб при выводе были только записи где поле value
имеет в наличие числа из массива в данном случае

Код: plaintext
1.
 1           Андрей            1 , 2 , 5 
 4           Сергей             1 , 3 , 4 , 5 , 6 

с условием что числа могут быть и не по порядку.
...
Рейтинг: 0 / 0
12.06.2005, 19:36
    #33113747
JackS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом на выборку
where value in $a

не помогает ?
...
Рейтинг: 0 / 0
12.06.2005, 19:39
    #33113748
JackS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом на выборку
вернее
WHERE value IN (".implode(",", $a).")
...
Рейтинг: 0 / 0
12.06.2005, 19:48
    #33113755
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом на выборку
JackSвернее
WHERE value IN (".implode(",", $a).")
помоему это малеха не то.
...
Рейтинг: 0 / 0
12.06.2005, 19:53
    #33113757
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом на выборку
например он выбирает все записи где просто одно из совпадений а этого не нужно
...
Рейтинг: 0 / 0
12.06.2005, 22:55
    #33113825
JackS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом на выборку
ну так разбей массив и скриптом сформируй кусок запроса
....
IN (1) AND
IN (5) AND
....

а потом вставь его в скл запрос

.... WHERE value $xPartSQL ....

не 100 же их у тебя в $a

:)
...
Рейтинг: 0 / 0
14.06.2005, 00:12
    #33114695
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом на выборку
JackSну так разбей массив и скриптом сформируй кусок запроса
....
IN (1) AND
IN (5) AND
....

а потом вставь его в скл запрос

.... WHERE value $xPartSQL ....

не 100 же их у тебя в $a

:)
хе это бы сработало если было поле и одно значение тогда такой вариант покатил бы
Но поле то одно а значений дофига IN тут не подойдет, скорее LIKE? но проблема в том что ища 1, мы можем вывести и просто 11
...
Рейтинг: 0 / 0
14.06.2005, 01:30
    #33114716
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом на выборку
А все проблемы из-за неправильной структуры базы.
Данные должны быть атомарными.
То есть, проще говоря, не должно быть никакого перечисления через запятую.
В такой задаче нужны две таблицы: Name (id, name) и Value (id, value, name_id).
...
Рейтинг: 0 / 0
14.06.2005, 03:52
    #33114741
viv
viv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом на выборку
DocAlА все проблемы из-за неправильной структуры базы.
Данные должны быть атомарными.
То есть, проще говоря, не должно быть никакого перечисления через запятую.
В такой задаче нужны две таблицы: Name (id, name) и Value (id, value, name_id).
БД проэктировал не я, переделывать позно, проект сдан.
Более того уже работает.
Приходится только оптимизировать.
...
Рейтинг: 0 / 0
14.06.2005, 04:02
    #33114743
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом на выборку
И поле напрочь текстовое, даже не SET?
...
Рейтинг: 0 / 0
14.06.2005, 04:59
    #33114746
JackS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом на выборку
vivхе это бы сработало если было поле и одно значение тогда такой вариант покатил бы
Но поле то одно а значений дофига IN тут не подойдет, скорее LIKE? но проблема в том что ища 1, мы можем вывести и просто 11

ну LIKE то мне кажется там вообще ни к селу ни к городу ... и вообще вроде в таком случае мне кажется одним-двумя запросами скл-я не обойдёшься .... лучше придумывай алгоритм с программингом ... хотя подумал я если бы в value они хотя бы по возрастанию шли на пример 1,5,8 а не 1,8,5 то можно было бы попытаться какие то маски придумать хотя вроде как тоже утопия ... лучше потрать денёк и переделай принцип работы под нормальную структуру базы как советовали выше это дело и в будущем предотвратит такие задачки :)
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с запросом на выборку / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]