|
|
|
| Здравствуйте!
у меня есть список баз данных mysql. Есть среди них и те бд, в которых присутствует таблица с одним и тем же названием. И мне надо из всех бд, в которых есть эта таблица выбрать значение. подскажите ка сделать оптимально?
Благодарю! | |
|
|
|
|
|
|
|
для: артурчик
(20.07.2011 в 23:33)
| | опишите что за базы, почему их так много, что содержит таблица и с какой целью нужна выборка из этих всех баз | |
|
|
|
|
|
|
|
для: Valick
(20.07.2011 в 23:48)
| | например, есть несколько бд, их может быть около 100 и более
бд1 ._искомое_название_таблицы
бд3534534._искомое_название_таблицы
бд3. а здесь такой таблицы нет
бд4. а здесь такой таблицы нет
и необходимо выбрать значения из тех бд, где есть таблица с нужным названием таблицы и нужными полями. Можно использовать EXIST, но я не знаю как все связать в одном запросе? или может правильный подход | |
|
|
|
|
|
|
|
для: Grr
(21.07.2011 в 09:08)
| | Собственно при создании таких запросов можно использовать хранимые функции или использовать расширенные имена, как у вас указано. Если вам нужно проверить существование таблицы, вероятно вам стоит обратить внимание на информационную схему, откуда можно извлечь информацию о всех доступных базах и таблицах. | |
|
|
|
|
|
|
|
для: cheops
(21.07.2011 в 11:45)
| | вот например что нужно, только он не рабочий
SELECT GROUP_CONCAT(i.TABLE_NAME, '.', my_pole) as nm
FROM INFORMATION_SCHEMA.TABLES AS i
WHERE i.TABLE_NAME ='My_NAME_TABLE'
GROUP BY i.TABLE_SCHEMA
|
тоесть найти бд, в которых есть таблицу с названием My_NAME_TABLE, и выбрать значение my_pole. Процедура не подходит, можно ли переделать так? | |
|
|
|
|
|
|
|
для: Grr
(21.07.2011 в 14:19)
| | Нет, так в FROM подставить название таблицы не получится, максимум что можно подставить в FROM это переменную, которая начинается с @, т.е. название таблицы сначала нужно извлечь в переменную, а её уже подставить в запрос. Поэтому без процедуры довольно трудно тут обойтись... вернее невозможно. | |
|
|
|