Я хочу выбрать имена столбцов, но я не знаю структуру таблицы раньше времени, и это может измениться, поэтому я не могу просто жестко закодировать оператор select с именами столбцов. Я также НЕ хочу выбирать каждый столбец. Есть ли и простой способ сделать это?Как динамически выбирать имена столбцов в mySQL
Мои мысли - это какая-то комбинация этих двух запросов, но мой SQL не так уж хорош.
SHOW COLUMNS FROM table_name;
SELECT * FROM table_name;
Я пробовал использовать вспомогательный выбор, но он не работал. Кажется, ничего не случится, я не получаю ошибку я просто не получаю результатов
SELECT (SELECT column_name
FROM information_schema.columns
WHERE table_name ='table_name')
FROM table_name;
Может быть, мне нужно сделать присоединиться? .. Во всяком случае любая помощь будет здорово, спасибо
Кажется странным, что структура таблицы постоянно меняется, что звучит как дефект дизайна. Можете ли вы опубликовать свою текущую структуру или предоставить больше контекста для своих таблиц? – Taryn
Это не постоянно меняется. Однако окончательная структура таблиц еще не установлена в камне, и поэтому я пытаюсь создать систему, которая достаточно умна, чтобы адаптироваться к тем, какие изменения могут произойти в будущем. Я не знаю имена столбцов раньше времени. Я мог бы сделать это на PHP с двумя отдельными запросами, но я мог бы также сделать это и на уровне базы данных. Я думал, что могу получить имена столбцов, а затем использовать эти данные для запроса таблицы в основном построить динамический оператор выбора. – TheSnooker
Вы можете сделать это с помощью динамического SQL (это будет эффективно два запроса), но если вам не нужны все столбцы, вам нужно будет ввести код в свой запрос, выбрав столбцы из метаданных, для чего нужны критерии для включения столбца (и любого конкретного заказа, который вы хотите). Но вы не можете напрямую преобразовать результаты запроса в метаданные в список выбора для запроса выбора. –