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

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

Проблемы с полями при поиске [D7, Access]


mouse_web ©   (2004-08-06 17:03:00) 

У меня таблица с двумя полями title (text) и body (memo), база Access.
Пишу запрос: SELECT * from Table WHERE title+' '+body LIKE '%search%';
этот запрос ничего не находит в таблице...
если искать не по двум сразу, а по отдельным полям, то все находится...
я подразумеваю, что в случае поиска по двум полям идет несовместимость типов полей text и memo...
может быть надо преодбразовать memo поле в текстовое? и как?
может кто сталкивался с этим?


mouse_web   (2004-08-06 17:35:00) [1]

спасибо заработало!

при большом количестве полей лучше делать запросы типа

> Select * from Table
> Where Title Like '%anything%'
> and Body Like '%anything'


а если полей мало, то можно

> SELECT * from Table WHERE title+' '+body LIKE '%search%';


хотя странно все это, почему при большом количестве полей не работает...
разницы то никакой


46_55_41_44   (2004-08-06 17:17:00) [2]


> Пишу запрос: SELECT * from Table WHERE title+' '+body LIKE
> '%search%';

Ты что прям так и писал запрос? SQL что сума сошел???

Select * from Table
Where Title = 'anything'
and Body Like '%anything'

Вот так надо...
Или так:

Select * from Table
Where Title Like '%anything%'
and Body Like '%anything'

Кстати... Символ который используется для Like в Delphi - '%' в MS Access например '*'.
То есть, если будешь писать текст SQL в коде программы, то LIKE '%search%', а если в самом MS Access, то '*search*'!!!
И это очень важно... Иначе не будет работать!!!
А так никакой разницы... Не надо менять тип поля!!!


sniknik   (2004-08-06 17:16:00) [3]

Соловьев ©   (06.08.04 17:14) [1]
так, title+' '+body LIKE '%search%', у меня тоже сработало, без проблем. если дело и есть то в чемто другом.


sniknik   (2004-08-06 17:15:00) [4]

> что в случае поиска по двум полям идет несовместимость типов полей text и memo...
вряд ли, тем более что в этом случае это одно и тоже.

> может быть надо преодбразовать memo поле в текстовое? и как?
действительно как? это же тоже самое. ;о)


Соловьев   (2004-08-06 17:14:00) [5]


> SELECT * from Table WHERE title+' '+body LIKE '%search%';

тебе сразу по двум полям?
SELECT * from Table WHERE title LIKE '%search%' and body LIKE '%search%';


Наверх

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