Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как подружить Group by и Containing?


Novicer ©   (2014-02-18 09:50:00) 

Здравствуйте! Делаю поиск по таблице, хочу сгрупировать записи с одинаковыми полями которые включают искомое. Незнаю как правильно составить запрос..  :(


ТНЕ картман   (2014-02-18 20:19:00) [1]


> посмотрят как на идиота.
>

это тоже моветон))


Novicer   (2014-02-18 13:40:00) [2]

Понял,учту...


Ega23   (2014-02-18 13:15:00) [3]


> Моветон это что?


Моветон - ну это примерно как громко пёрнуть в коллективе. Ругать не будут, но посмотрят как на идиота.


Inovet   (2014-02-18 13:14:00) [4]

> [10] Novicer   (18.02.14 13:05)
> Моветон это что?

моветон I Манеры, поступки, не принятые в хорошем обществе; дурной тон, невоспитанность.


Inovet   (2014-02-18 13:13:00) [5]

> [10] Novicer   (18.02.14 13:05)
> Почему нельзя применять *?

Ты сам и ответил выше - потому что гемор потом разгребать будешь дольше.


Ega23   (2014-02-18 13:13:00) [6]

1. В реальной задаче редко нужны все поля из таблицы.
2. В реальной задаче часто нужны составные запросы из двух и более таблиц.
3. * выдаст тебе поля не всегда с предсказуемым результатом. Ну в смысле, что порядок столбцов на разных базах может отличаться. При всякой навороченной логике в хранимках - вредно.
4. В случае * ты не застрахован от получения двух полей с одинаковым именем (это когда несколько таблиц связывается).
5. Это просто приучает к аккуратности.
6. Можешь не верить и продолжать использовать *, пока не нахлебаешься вышеперечисленных проблем и не выработаешь собственный стиль.

Как-то так.


Inovet   (2014-02-18 13:12:00) [7]

> [4] Novicer   (18.02.14 10:25)
> А можно параметр вместо текста прикрутить как-нить?

Ну а почему нет, присваивай значению параметра текст вместе с "%".


Novicer   (2014-02-18 13:05:00) [8]

Моветон это что? Почему нельзя применять *?


Ega23   (2014-02-18 12:47:00) [9]


> select * пришлось заменить на select и перечень полей, они
> же и в group by. По другому не пашет зараза :(


Я тебе это несколько дней назад говорил. select * - это моветон. В качестве отладки ещё худо-бедно пойдёт.


Novicer   (2014-02-18 12:18:00) [10]

Пашет с containing и параметр с группировкой по нужному полю прикрутил :) по шаблону RWolfa сделал, только Like %text% заменил на Containing :Param_name и от себя еще добавил order by в конце :) select * пришлось заменить на select и перечень полей, они же и в group by. По другому не пашет зараза :(


Ega23   (2014-02-18 10:47:00) [11]


> Юзаю IBX, огнептиц 2.5


Ну вот возьми и проверь, мне тоже будет интересно, т.к. в данный момент времени юзаю то же самое.


Novicer   (2014-02-18 10:37:00) [12]

Юзаю IBX, огнептиц 2.5


Ega23   (2014-02-18 10:29:00) [13]

от DAC зависит походу. А может и не зависит, давно этим не занимался, не помню уже.
Дык возьми да поэксперементируй. О результатах - отпишись.


Novicer   (2014-02-18 10:25:00) [14]

А можно параметр вместо текста прикрутить как-нить? И в него из эдита присваивать?


Ega23   (2014-02-18 10:22:00) [15]


> . А я думал containing применить чтоб регистр букв не влиял
> на результаты..


WHERE Upper(field1) LIKE '%TEXT%'


Novicer   (2014-02-18 10:17:00) [16]

Спасибо! Попробую... А я думал containing применить чтоб регистр букв не влиял на результаты..


RWolf   (2014-02-18 10:07:00) [17]

так и пиши: SELECT ... FROM mytable WHERE field1 LIKE '%text%' GROUP BY field1


Наверх

Титульная страница Поиск, карта сайта Написать письмо