Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
12 / 12 / 3
Регистрация: 07.05.2013
Сообщений: 139

Запрос на выборку из двух полей

04.02.2016, 07:06. Показов 1478. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Есть таблица с данными, например:
СтолбецА СтолбецБ
Тетрадь в клетку
Тетрадь в линейку
Тетрадь простая

Можно при поиске объединять столбцы? Т.е. если пользователь введет в строку поиска "тетрадь в клетку", то ему бы выдало нужную строку из таблицы.
MSAccess, ADO, D7.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.02.2016, 07:06
Ответы с готовыми решениями:

SQL, запрос на выборку полей с определенным значением
Надобно написать средствами SQL выборку, которая при значении какого-то поля <какое-то_поле> = 0 выводило пробел, ну или по вкусу. ...

Запрос на выборку записей с совпадающими значениями в одном из полей
Подскажите, пожалуйста, как написать запрос. Есть таблица Table1 с двумя полями и . Как написать запрос на вывод всех записей,...

Сделать выборку с Таблицы2 на основании двух полей из Таблицы1
Прошу помощи В двух таблицах много записей есть Таблица 1 (T1) (два поля), пример City Киев Street Зод есть...

22
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,668
Записей в блоге: 21
04.02.2016, 08:20
SQL
1
SELECT f1,f2 FROM t1 WHERE f3||' '||f4='aaa bbb'
0
12 / 12 / 3
Регистрация: 07.05.2013
Сообщений: 139
04.02.2016, 19:06  [ТС]
"Недопустимое использование символов вертикальной черты в выражении запроса"

Добавлено через 13 минут
Delphi
1
2
3
4
ADOQuery1.SQL.Add('SELECT ot.nomer, ot.naim, ot.tip, ot.izg, ot.mpi, ot.path, ot.srok');
ADOQuery1.SQL.Add('FROM ot');
ADOQuery1.SQL.Add('WHERE naim||'+' '+'||tip=:r');
ADOQuery1.Parameters.ParamByName('r').Value:=fTip.Text;
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,668
Записей в блоге: 21
04.02.2016, 20:18
ADOQuery1.SQL.Add('WHERE naim||'' ''||tip=:r');
0
12 / 12 / 3
Регистрация: 07.05.2013
Сообщений: 139
04.02.2016, 22:24  [ТС]
Такая же штука((

Добавлено через 51 минуту
Пробовал и с "+" и с "&" не получается
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,668
Записей в блоге: 21
04.02.2016, 22:34
первая строка в гугле сказала мне что в Access синтаксис конкатенации строк

The syntax to concatenate strings using the & operator in MS Access is:
string_1 & string_2 & string_n
[FirstName] & " " & [LastName]
замените || на &
возможно двойные апострофы нужно заменить на кавычки
0
12 / 12 / 3
Регистрация: 07.05.2013
Сообщений: 139
05.02.2016, 07:00  [ТС]
Delphi
1
ADOQuery1.SQL.Add('WHERE (naim &" "& tip LIKE :r);');
Вот так получилось.
Но теперь другая беда. Если в Столбце1 поле "Компьютер настольный", а в Столбце2 поле "ASUS", то мне нужно что бы при вводе пользователем в поиск "Компьютер ASUS" мне нужная строка выводилась. Сейчас она появится только при запросе "Компьютер настольный ASUS"
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,668
Записей в блоге: 21
05.02.2016, 07:46
тогда неправильно поставлено исходное задание

сформулируйте его на естественном русском языке, тогда и на SQL оно переведется без проблем
0
5971 / 4547 / 1094
Регистрация: 29.08.2013
Сообщений: 28,168
Записей в блоге: 3
05.02.2016, 08:35
создавайте временную таблицу\колонку в которой будет "Компьютер, настольный, ASUS" и другие слова
далее ищите через like, и выводите пользователю как неточный поиск
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,668
Записей в блоге: 21
05.02.2016, 08:49
колонка не подойдет
таблица слов + поиск с LIKE по этой таблице
0
5971 / 4547 / 1094
Регистрация: 29.08.2013
Сообщений: 28,168
Записей в блоге: 3
05.02.2016, 09:17
почему не подойдет?
пользователь ищет "Компьютер ASUS"
разбиваем на слова s[1], s[2]

SQL
1
SELECT * FROM TABLE WHERE random LIKE s[1] OR random LIKE s[2]
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,668
Записей в блоге: 21
05.02.2016, 10:21
полнотекстовый поиск LIKE 'AAA%' приводит к полному перебору всей таблицы
для учебной задачи потянет
для 10000 строк в рабочей программе пользователи тебя будут проклинать
0
5971 / 4547 / 1094
Регистрация: 29.08.2013
Сообщений: 28,168
Записей в блоге: 3
05.02.2016, 10:35
Цитата Сообщение от krapotkin Посмотреть сообщение
для учебной задачи потянет
да мне кажется больше и не надо

Цитата Сообщение от krapotkin Посмотреть сообщение
для 10000 строк в рабочей программе пользователи тебя будут проклинать
ограничить поиск датами, слово "Компьютер" заменить по справочнику ТипУстройств, остаток выгрузить во времянку, и по ней искать
SQL
1
SELECT * FROM WHERE TYPE=1 AND STROKA LIKE '%ASUS%'
0
12 / 12 / 3
Регистрация: 07.05.2013
Сообщений: 139
05.02.2016, 18:05  [ТС]
Задача не учебная. В таблице примерно 100000 строк. Решил проблему так:
1) Беру строку для поиска
2) Заменяю в ней пробелы на "* *"
3) Подставляю в поиск.
Delphi
1
ADOQuery1.SQL.Add('WHERE (naim &" "& tip LIKE :r);');
Профит
0
5971 / 4547 / 1094
Регистрация: 29.08.2013
Сообщений: 28,168
Записей в блоге: 3
05.02.2016, 20:36
перебирать таким образом всю таблицу это глупость
0
12 / 12 / 3
Регистрация: 07.05.2013
Сообщений: 139
05.02.2016, 21:20  [ТС]
В смысле перебирать? Это запрос же. Выполняется менее чем за секунду
0
5971 / 4547 / 1094
Регистрация: 29.08.2013
Сообщений: 28,168
Записей в блоге: 3
06.02.2016, 00:30
alfikss, а запрос что делает? телепатически данные извлекает?
он подставляет каждое поле в ваше условие и находит совпадения
0
12 / 12 / 3
Регистрация: 07.05.2013
Сообщений: 139
06.02.2016, 15:02  [ТС]
Подскажи тогда способ извлечения данных из БД без помощи запросов
0
5971 / 4547 / 1094
Регистрация: 29.08.2013
Сообщений: 28,168
Записей в блоге: 3
06.02.2016, 15:20
Цитата Сообщение от alfikss Посмотреть сообщение
Подскажи тогда способ извлечения данных из БД без помощи запросов
БД создана для хранения в ней данных и извлечения их

другое дело у что у вас БД спроектирована неправильно
0
12 / 12 / 3
Регистрация: 07.05.2013
Сообщений: 139
06.02.2016, 15:34  [ТС]
Цитата Сообщение от qwertehok Посмотреть сообщение
извлечения их
Еще раз повторю свой вопрос. Как извлечь данные из БД без запросов?
Цитата Сообщение от qwertehok Посмотреть сообщение
БД спроектирована неправильно
Вы понятия не имеете как у меня спроектирована БД и почему именно так
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.02.2016, 15:34
Помогаю со студенческими работами здесь

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

Запрос на выборку из двух таблиц
Люди, беда! Не пойму, как реализовать. Есть три таблицы, с друг другом связанные. Есть форма "Добавить художника" с двумя...

Запрос на выборку из двух таблиц
столкнулся с такой вот проблемой... существует допустим две таблицы А (id->1,2,3,4,5) и B (id->5,3,1), необходимо сформировать...

Запрос на выборку из двух таблиц
Всем доброго времени суток. Помогите пожалуйста составить SQL-запрос. Есть две таблицы: 1)security с полями kod, login, pass 2)today...

Запрос на выборку из двух таблиц
есть две таблицы таблица_разделов: id;id_parent;name_razdel таблица_товаров: id;id_parent;name_товар в таблице разделов к примеру ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru