好的,我知道您可以执行以下操作来获取所有列名称。
SHOW COLUMNS FROM person;
但是,它不允许where语句。
有没有办法获得完整的清单,只是说不是这个?
所以我基本上都在寻找这样的东西:
select (show columns from person where Field <> 'id') from person
答案 0 :(得分:3)
USe SHOW [FULL] COLUMNS {FROM | IN} tbl_name [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr]
示例:
SHOW CHARACTER SET WHERE`默认排序规则`LIKE'%japanese%';
尝试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 子句。
如果我建议
答案 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';