mysql选择除了以外的所有表名

时间:2011-01-18 22:33:47

标签: sql mysql

好的,我知道您可以执行以下操作来获取所有列名称。

SHOW COLUMNS FROM person;

但是,它不允许where语句。

有没有办法获得完整的清单,只是说不是这个?

所以我基本上都在寻找这样的东西:

select (show columns from person where Field <> 'id') from person

4 个答案:

答案 0 :(得分:3)

USe SHOW [FULL] COLUMNS {FROM | IN} tbl_name [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr]
示例:

SHOW CHARACTER SET WHERE`默认排序规则`LIKE'%japanese%';

More about show here

尝试SHOW COLUMNS FROM person WHERE column != 'value';

之类的内容

答案 1 :(得分:3)

或者您可以对information_schema使用正确的SQL查询

select * from information_schema.columns
where table_schema = 'test'    # your db name
and table_name = 'person '
and column_name != 'id'

对于MySQL 4 ,您可以直接使用LIKE而不是WHERE http://dev.mysql.com/doc/refman/4.1/en/show-columns.html

SHOW COLUMNS FROM 'Person' LIKE '%x%'

但遗憾的是,这不支持 NOT 子句。

如果我建议

  • 如果您需要此信息 MySQL控制台/ phpAdmin /等价物, 只是眼球..
  • 如果你需要这个 从像php这样的前端程序来做 它来自那个环境。

答案 2 :(得分:1)

MySQL documentation表示允许使用WHERE子句。阅读文档。

答案 3 :(得分:0)

您无法在MySQL 4中执行真正的SHOW COLUMNS WHERE。文档仅显示该版本的可选LIKE参数:http://dev.mysql.com/doc/refman/4.1/en/show-columns.html

但是,您可以使用元数据库information_schema。

USE information_schema;
SELECT * FROM `COLUMNS` WHERE `TABLE_NAME` = 'person' AND `COLUMN_NAME` != 'value';