У меня есть база данных с тысячами таблиц, называемая временем UTC в секундах с 1.1.1970
(т. Е. time
). Я стараюсь, чтобы отображали таблицы, превышающие время X
и меньше времени Y
. Мне известно, как использовать оператор select для выполнения математических операций с результатами запроса из одной таблицы, но я не могу понять, как это сделать в имени таблицы.Математическая операция по имени таблицы MySQL
Вот идея о том, что я пытаюсь сделать:
SHOW TABLES FROM DATABASE history WHERE TABLENAME.SUBSTRING(4, LEN(TABLENAME) - 4) > TimeX AND TABLENAME.SUBSTRING(4, LEN(TABLENAME) - 4) < TimeY;
Я понимаю, это никоим образом не напоминает действительное заявление MySql, но я думаю, что это помогает объяснить, что я пытаюсь выполнить , Ваше время ценится, спасибо.
UPDATE: Спасибо Eugen, итоговое заявление я использовал СЛЕДУЮЩЕЕ:
SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA='db_time' AND CAST(SUBSTRING(TABLE_NAME,2) AS UNSIGNED) > 1383072311 AND CAST(SUBSTRING(TABLE_NAME,2) AS UNSIGNED) < 1383130756 ORDER BY CAST(SUBSTRING(TABLE_NAME,2) AS UNSIGNED) ASC LIMIT 1;
Можете ли вы привести несколько примеров того, как на самом деле выглядят имена таблиц? –