![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 08.11.2009
Сообщений: 225
|
![]()
Есть Таблица
Нужно выбрать такое tradeid, который будет содержать ровно столько строк, сколько мы будем искать Например, данные в БД такие: id tradeid itemid code1 1 1 6 0 2 1 0 041 3 1 0 001 Я ищу 3 строки: первая: либо tradeid = 6, либо code = 011, либо code = 001 первая: либо tradeid = 8, либо code = 041, либо code = 001 первая: либо tradeid = 8, либо code = 041, либо code = 001 Как видно, может найти вообще одну строку с id=3 (1,0,001), которая будет повторяться три раза в этом tradeid. Пробую добавлять в условие Having найденных айдишников и уникальных: Код:
А мне же нужно искать совпадение по приоритету, т.е. из: либо tradeid = 6, либо code = 011, либо code = 001 -> если tradeid = 6 не найдено, то искать code = 011, если и его не нашло, то искать строку с code=001 и если совпадение найдено, то сразу отбросить эту строку с дальнейшего поиска В поиске вроде же по порядку (приоритету) параметры стоят, так почему же находит строку по последнему из них? (пробовал менять местами INы - то же самое). Последний раз редактировалось Pamparam; 27.06.2012 в 11:45. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 08.11.2009
Сообщений: 225
|
![]()
сообразил уже (вспомнил), после написанного, что code - поле спецом сделанное для поиска и можно добавить в начало 0 и 1. 0 - для поиска по itemid, 1 - для поиска по другому полю, т.е. программно делать код для каждой строки, записывать его в поле и по нему же искать
Но вопрос, для общего развития, открыт не получилось) Последний раз редактировалось Pamparam; 27.06.2012 в 11:21. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 17.01.2012
Сообщений: 14
|
![]() Код:
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 08.11.2009
Сообщений: 225
|
![]() |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 17.01.2012
Сообщений: 14
|
![]()
На приведенных данных, только одна строка удовлетворяет условию where, даже отбрасывая count(id). Вот такое решение устроит?
Код:
Последний раз редактировалось Joeymax; 27.06.2012 в 03:57. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 08.11.2009
Сообщений: 225
|
![]()
Во-первых, в вашем примере мне найдет количество всех строк, входящих в таблицу, а не в tradeid. Что мне с ним делать?
Во-вторых, мне нужно найти tradeid, в котором будет содержаться точно столько строк, сколько я их буду искать. Для поиска tradeid, содержащего 3 строки: первая: 16 or 0011 or 0001 вторая: 18 or 0041 or 0001 третья: 18 or 0041 or 0001 переделал старый пример от Аватара и pproger (спс еще раз). Код:
Последний раз редактировалось Stilet; 27.06.2012 в 21:32. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывод количества строк в БД | Smile08 | C# (си шарп) | 2 | 04.08.2011 13:29 |
Подсчет количества строк в БД (Delphi 7) | NuR1k | БД в Delphi | 8 | 30.08.2010 03:57 |
ошибка подсчета количества строк | kinnder | Помощь студентам | 4 | 02.03.2010 23:38 |
Поиск точного значения с помощью функции БИЗВЛЕЧЬ | THE_ENGINEER | Microsoft Office Excel | 8 | 23.07.2008 11:37 |