2015-02-11 4 views
0

У меня есть база данных с несколькими таблицами и веб-интерфейс пользователя. Я хочу, чтобы пользователь мог искать данные в базе данных. Результаты поиска могут поступать из нескольких таблиц и соединяться между ними.Как реализовать динамический поиск в нескольких таблицах db

, например: параметр а приходит из таблицы А, Ь из таблицы B ЭСТ», так что если он ищет & б он получит результаты от & Б.

Так я думал, чтобы написать код который будет генерировать SQL-запрос динамически в соответствии с поиском, выполняемым пользователем.

Но этот подход очень сложный для реализации, потому что мне придется генерировать другой запрос для каждого поиска - если он ищет «а», поэтому запрос будет содержать «А», и если он будет искать «b», он будет содержат 'B', и если он ищет 'a' & 'b', он будет содержать 'A' & 'B'.

Так что мой вопрос: есть ли более простой способ реализовать поиск или мне нужно написать код с загрузкой «if»?

Спасибо всем

+0

какие данные хранятся в таблице А и В? И как узнать, есть ли параметр a действительно ли параметр a? Как может кто-то вроде меня рассказать? Если вы можете решить эту логику, то сделать динамический SQL будет легко – Ahmad

+0

Также отредактируйте свой вопрос с помощью тэга db, sql - это всего лишь язык. – Mihai

+0

для студента мой запрос будет выглядеть так: выберите * из A. и если он ищет оценку, то запрос будет: select * from B., но если он будет искать оценку ученика, запрос будет: select * от A join B и т. д. '. так должен ли мой код генерировать разные предложения «от» и «где» для разных комбинаций поиска? – Shmuli

ответ

0

Я не знаю, как ваш DB разработан, но вы можете создать searchingmechanism, где пользователь может Chooze который Database/s он хочет искать (дружелюбных идентификаторы конечно в frontendside). В вашей базе данных вы можете указать таблицу с метаинформацией для ваших таблиц, например. Имя таблицы, кластеры для поиска и т. Д.

После того, как Пользователь сообщает интерфейсу, какие категории (tbls) он хочет выполнить, вы можете смешать параметр с заданным индексом (вы можете считать запятыми), а затем сделать цикл while для подсчет индекса, просматривающего все tbls в этой строке, вставьте RS в временную таблицу # 1, # 2, # 3, ... выберите их и запустите их.

Вы должны рассмотреть различные Типы данных и т.д. Это не так просто TBF

Смежные вопросы