Итак, у меня есть около 6 таблиц с 6 столбцами каждый, например, адрес, имя и т. Д. Я должен реализовать функцию поиска, в которой пользователь вводит слово, и мне нужно искать всю мою базу данных (все 6 таблиц), чтобы найти слово, и когда слово найдено, эта строка должна быть возвращена из этой таблицы. Любая идея, как я могу это сделать?Как реализовать «поиск» в моей базе данных?
ответ
Используйте предложение LIKE и подстановочные знаки. (Пример PHP)
'Select * FROM Table_Nam WHERE column_Nam1 LIKE %' . $searchValue . '%'.
'OR column_Nam2 LIKE %' . $searchValue . '%'.
'OR column_Nam3 LIKE %' . $searchValue . '%'.
'OR column_Nam4 LIKE %' . $searchValue . '%'.
'OR column_Nam5 LIKE %' . $searchValue . '%'.
'OR column_Nam6 LIKE %' . $searchValue . '%'.;
Предполагая, что все шесть таблиц имеют одинаковые имена столбцов, которые можно использовать этот запрос.
SELECT * FROM TABLE1 WHERE
col1 LIKE '%searchValue%' OR col2 LIKE '%searchValue%' OR
col3 LIKE '%searchValue%' OR col4 LIKE '%searchValue%' OR
col4 LIKE '%searchValue%' OR col6 LIKE '%searchValue%'
UNION ALL
SELECT * FROM TABLE2 WHERE
col1 LIKE '%searchValue%' OR col2 LIKE '%searchValue%' OR
col3 LIKE '%searchValue%' OR col4 LIKE '%searchValue%' OR
col4 LIKE '%searchValue%' OR col6 LIKE '%searchValue%'
UNION ALL
SELECT * FROM TABLE3 WHERE
col1 LIKE '%searchValue%' OR col2 LIKE '%searchValue%' OR
col3 LIKE '%searchValue%' OR col4 LIKE '%searchValue%' OR
col4 LIKE '%searchValue%' OR col6 LIKE '%searchValue%'
and so on...
Если шесть таблиц имеют другое название колонки вы можете использовать union all
, но прежде чем вы должны переименовать столбец так, чтобы каждый выбрать возвращают те же имя столбца
SELECT col_a as COL1, col_b as COL2, col_c AS COL3, col_d AS COL4, col_e AS COL5, col_f as COL6 FROM TABLE1 WHERE ....
UNION ALL
SELECT col_q as COL1, col_w as COL2, col_e AS COL3, col_r AS COL4, col_t AS COL5, col_y as COL6 FROM TABLE2 WHERE ....
etc..
Если ни один из двух запросы выше будут работать для вашей цели, вы все равно можете использовать одиночные запросы, выполняя шесть разных операторов select.
В случае примера «union» я угадываю таблицу ('TABLE1',' TABLE2' и т. Д.), Что запись найдена также важна и должна быть включена в каждую строку, иначе не было бы понятия, из какой таблицы следует результат поиска. У меня возникнет соблазн придерживаться отдельных запросов, чтобы сделать его более очевидным (если исключительно важно, чтобы поиск выполнялся в одном запросе, и в этом случае я бы использовал хранимую процедуру). – sennett
вы всегда можете узнать, из какой таблицы результат, просто добавив простой статический столбец в каждом select ... ie 'select table_1 as name ... from table1 .... union all select table_2 как имя из таблицы2 ... 'и т. д. и т.д. – Marcx
- 1. Поиск в моей базе
- 2. Поиск DSN в моей базе данных?
- 3. Как реализовать систему дружбы в моей базе?
- 4. Как реализовать быстрый поиск (как в google) в базе данных.
- 5. Как реализовать ограниченный доступ к подмножествам в моей базе данных
- 6. Как реализовать уникальное поле приоритета в моей базе данных?
- 7. Как выполнить поиск в моей базе данных с помощью php
- 8. Как реализовать полнотекстовый поиск в базе данных NoSQL?
- 9. Лучший способ реализовать таблицу рисунков в моей базе данных
- 10. Как реализовать CDC в базе данных mysql
- 11. Поиск в базе данных
- 12. HTML-объекты в моей базе данных. Поиск с нулем результаты
- 13. поиск в базе данных
- 14. Поиск POI в моей базе данных по маршруту Google Maps?
- 15. MongoDB в моей базе данных
- 16. Поиск данных в базе данных
- 17. Как реализовать теги в базе данных?
- 18. Как реализовать раздел комментариев в базе данных
- 19. Поиск в базе данных cakephp
- 20. Поиск записей в базе данных
- 21. Как удалить миграцию в моей базе данных?
- 22. Реализовать «Поиск», как поиск в App Store
- 23. Как реализовать эту логику в базе данных?
- 24. Как выполнить миграцию в моей производственной базе данных, но не в моей базе данных разработки?
- 25. Поиск в базе данных с типом данных
- 26. Гибкий поиск в базе данных
- 27. Поиск в базе данных MySQL
- 28. поиск слова в базе данных
- 29. Поиск строк данных в базе данных
- 30. Поиск таблицы в базе данных
Документация mysql крайне пугает –
Исправлена ссылка, эта ссылка не должна быть недопустимой :) – RaphaelH