Вопрос про SQL запрос (таблица Аксес)

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Zubik
Новичок
Новичок
 
Сообщения: 40
Зарегистрирован: 07.08.2006 (Пн) 15:54

Вопрос про SQL запрос (таблица Аксес)

Сообщение Zubik » 29.08.2006 (Вт) 20:05

Подскажите пожалуйста, каков будет текст сабжа в данном случае:

есть несколько полей, в последнее поле вносятся через запятую фамилии.
Реально ли сделать запрос таким образом, чтобы записи выбирались лиш те, у которых в этом последнем поле находится нужная нам фамилия (несмотря на то, что их там несколько)

Нужно это или нет, но на всякий случай скажу, что доступ к mdb-таблице я пишу через ADO

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 29.08.2006 (Вт) 20:41

Видимо, те, у которых ненулёво выполняется функция Instr на этом поле?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 29.08.2006 (Вт) 20:47

Код: Выделить всё
SELECT *
FROM FIO
WHERE FIO_LIST LIKE '*Иванов*'

Только лучше данные через запятую не вносить -- это изначально неправильная структура БД. Ни толковый поиск не сделаешь, ни связи не построишь.
Делай одно поле - одна фамилия (ФИО).
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 30.08.2006 (Ср) 12:09

для ADO, так:



Код: Выделить всё
SELECT *
FROM FIO
WHERE FIO_LIST LIKE '%Иванов%'

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 30.08.2006 (Ср) 20:17

Konst_One писал(а):для ADO, так:
Код: Выделить всё
SELECT *
FROM FIO
WHERE FIO_LIST LIKE '%Иванов%'

Корректнее:
Код: Выделить всё
SELECT *
FROM FIO
WHERE FIO_LIST LIKE '%Иванов,%' or FIO_LIST LIKE '%Иванов'

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 30.08.2006 (Ср) 21:32

Nicky писал(а):Корректнее:
Код: Выделить всё
SELECT *
FROM FIO
WHERE FIO_LIST LIKE '%Иванов,%' or FIO_LIST LIKE '%Иванов'

Что-то ты не то пишешь. Если в строке будет "Иванов И.И.", то твой запрос ничего не выберет.
Ну и вообще, свое мнение насчет хранения данных через запятую я уже написал -- это неправильно.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 30.08.2006 (Ср) 21:57

VVitafresh писал(а):Что-то ты не то пишешь. Если в строке будет "Иванов И.И.", то твой запрос ничего не выберет.
Ну и вообще, свое мнение насчет хранения данных через запятую я уже написал -- это неправильно.

Автор написал, что хранятся фамилии (пусть неправильно). Про FIO придумал Konst_One

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 30.08.2006 (Ср) 22:07

Nicky писал(а):Про FIO придумал Konst_One

Вообще-то я :wink:
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 30.08.2006 (Ср) 22:09

VVitafresh писал(а):
Nicky писал(а):Про FIO придумал Konst_One

Вообще-то я :wink:

эээ, типа Konst_One извини :roll:

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 04.09.2006 (Пн) 11:21

Nicky
ничего я не придумывал, я лишь указал на использование % вместо * в запросе для ADO

читайте внимательней :wink:


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList  
cron