MySQL - 为什么使用'IN'查询失败?

时间:2010-10-08 19:57:06

标签: mysql error-handling

这些查询会返回正确的结果:

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

2 个答案:

答案 0 :(得分:5)

也许这会给你你想要的东西?

SELECT *
  FROM information_schema.columns
 WHERE table_name IN ('users', 'teachers')

答案 1 :(得分:2)

根据MySQL文档(section 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向导,但这里有一些。)