|
|
|
| Есть 20-30 таблиц вида supp_xxx, где xxx - число. Необходимо реализовать поиск по ним, по столбцам art_1, art_2, art_3. Причем в каких-то таблицах столбцов art_2, art_3 может не быть. Как примерно это сделать, "съедая" минимум ресурсов? | |
|
|
|
|
|
|
|
для: alexander95
(10.08.2013 в 22:39)
| | JOIN и UNION тут "минимум" не съедят. Думаю минимум будет через хранимую процедуру, которая поочередно произведет поиск в каждой таблице. | |
|
|
|
|
|
|
|
для: Sfinks
(11.08.2013 в 00:26)
| | Можно пример? | |
|
|
|
|
|
|
|
для: alexander95
(11.08.2013 в 21:14)
| | Пример можно:
DELIMITER $$
CREATE PROCEDURE search_3_tables( IN val varchar(10) )
BEGIN
CREATE TEMPORARY TABLE titles(title varchar(50),tbl varchar(20)) ENGINE=MEMORY;
INSERT titles SELECT name, 'authors' FROM authors WHERE name LIKE concat('%',val,'%');
INSERT titles SELECT title, 'books' FROM books WHERE title LIKE concat('%',val,'%') OR description LIKE concat('%',val,'%');
INSERT titles SELECT name, 'catalog' FROM catalog WHERE name LIKE concat('%',val,'%');
SELECT * FROM titles;
DROP TEMPORARY TABLE titles;
END$$
DELIMITER ;
| использование:
call search_3_tables('фыва')
|
_______
P.S. Но вы же понимаете, что у вас что-то не так со структурой БД и об "эффективности" тут можно говорить очень относительно..... | |
|
|
|
|
|
|
|
для: Sfinks
(12.08.2013 в 09:13)
| | Никогда не поздно реорганизовать бд. Можно об этом с Вами тут проконсультироваться? | |
|
|
|
|
|
|
|
для: alexander95
(12.08.2013 в 18:06)
| | Ну я тут не один... Есть и посильнее спецы! Вы спрашивайте, чем сможем - поможем. И лучше в новой теме. | |
|
|
|
|
|
|
|
для: Sfinks
(12.08.2013 в 19:29)
| | Я конкретно Вам больше остальных доверяю еще с давних пор :)
Хорошо, сейчас создам. | |
|
|
|