繁体   English   中英

MySQL选择所有表名除外

[英]mysql select all table names except

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

SHOW COLUMNS FROM person;

但是,它不允许where语句。

有什么办法可以得到完整的清单,而只是说不出来?

所以我基本上正在寻找这样的事情:

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

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

在“默认排序规则”中显示字符,例如“%japanese%”;

有关此处显示的更多信息

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

或者您可以对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 console / phpAdmin / equivalent中获取此信息,只需注意一下即可。
  • 如果您需要像php这样的前端程序中的此功能,请在该环境中进行操作。

MySQL文档说允许使用WHERE子句。 阅读文档。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM