Ошибка при выборе имен столбцов из таблицы в информационной схеме MySQL
Я пытаюсь получить список имен столбцов из конкретной таблицы в MySQL. Я бегу:
SELECT column_name
FROM information_schema.columns
WHERE table_name = `test 2.2`
AND table_schema = test
База данных называется test
и имя таблицы test 2.2
и остальная часть синтаксиса выглядит правильно. Однако я продолжаю получать сообщение об ошибке
Код ошибки: 1054. Неизвестный столбец "test 2.2" в "where clause"
Есть ли другой способ, которым я могу делать то, что я хочу, и / или как мне обойти эту ошибку?
3 ответа
Решение
Имена объектов (в данном случае: имя таблицы) хранятся в информационной схеме в виде строковых литералов, поэтому их следует запрашивать одинарными кавычками ('
):
SELECT column_name
FROM information_schema.columns
WHERE table_name = 'test 2.2' AND table_schema = 'test'
-- Here -----------^--------^--------------------^----^
SELECT column_name
FROM information_schema.columns
WHERE table_name = "test 2.2"
AND table_schema = "test"
Или, почему бы вам просто не описать таблицу.
desc `test 2.2`;
Используйте кавычки, а не кавычки для строк
SELECT column_name
FROM information_schema.columns
WHERE table_name = 'test 2.2'
AND table_schema = 'test'