Ошибка при выборе имен столбцов из таблицы в информационной схеме 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'
Другие вопросы по тегам