Эти запросы возвращают правильные результаты:
SHOW FULL COLUMNS FROM `users`
SHOW FULL COLUMNS FROM `teachers`
Но это порождает ошибку
SHOW FULL COLUMNS IN ('users', 'teachers')
Я пробовал одинарную цитату, двойную кавычку, обратную цитату и никакую цитату, и все не удается. Что я делаю неправильно?
Ошибка:
#1064 - You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right
syntax to use near '('users', 'teachers')' at line 1
Возможно, это дает вам то, что вам нужно?
SELECT *
FROM information_schema.columns
WHERE table_name IN ('users', 'teachers')
В соответствии с документами MySQL (раздел 12.4.5.5), вы можете использовать ключевое слово IN
вместо FROM
, но оно не имеет того же значения, что и в предложении WHERE
; это просто синоним FROM
в этом контексте.
SHOW [FULL] COLUMNS {FROM | IN} tbl_name [{FROM | IN} db_name] [LIKE 'pattern']
{FROM | IN}
означает, что они взаимозаменяемы. Тот факт, что он не говорит что-то вроде {FROM tbl_name | IN (tbl_name1, tbl_name2, ...)}
, означает, что между ними нет никакой разницы.
Я не уверен, что показывать более одного столбца таблицы можно в одном простом запросе. Может быть, подзапросы будут делать трюк? (Не мастер SQL, но есть некоторые здесь.)
IN
здесь отличается от его обычного значения? (если так, я не вижу, какое это может быть использование)
SHOW COLUMNS IN users
определенно читают лучше как английское предложение, но FROM
чаще используется в MySQL. Мех. Компромиссы.
SHOW FULL COLUMNS
? Это не может быть.SHOW [FULL] COLUMNS {FROM | IN} tbl_name [{FROM | IN} db_name] [LIKE 'pattern']