Подскажите, пожалуйста, как правильно составить такой запрос: Код (Text): select * from (select 'city') суть, которого заключается в том, что имя таблицы заранее не известно и должно формироваться в результате выполнения вложенного запроса? Может можно написать как-то так: Код (Text): X = select 'city'; select * from X ? Главное, что бы оба запроса проходили в течении одного обращения к базе
Код (Text): SET @tablename = (SELECT "city"); SET @sql = CONCAT( 'select * from ', @tablename); SELECT @sql; PREPARE bleatb_izvrat FROM @sql; EXECUTE bleatb_izvrat; Всё это одним запросом
Отвечаю на вопрос, зачем. Это попытка получить весь необходимый контент по произвольному значению REQUEST_URI за одно обращение к базе. Если REQUEST_URI содержит имя таблицы и id записи, то проблем нет, берем имя таблицы и id записи и получаем контент. Но если REQUEST_URI состоит из произвольной фразы (ЧПУ), то надо сперва по этой фразе определить имя таблицы и id записи, и только потом можно обращаться за контентом. Если имя таблицы и id записи и соответствующий им REQUEST_URI хранятся в таблице, то получается два запроса и следовательно, лишние временные затраты. Для того, что бы сократить временные затраты, я и ищу способ выполнить данную операцию за одно обращение к базе. Пока что я использую кэширование.
Я видел. В будущем обязательно воспользуюсь этим примером. Спасибо. Просто сделал кэширование и забыл. Даже не сразу вспомнил, зачем такой вопрос задавал ))