mySQL中如何查询指定的表中是否存在某个列?
1、创建数据库表,create table test_users(user_id bigint, user_name varchar(100));
2、查看系统视图tables,在系统视图中可以查到刚建的数据表,select * from information_schema.tables t where table_name = 'test_users',
3、查看系统视图columns,在系统视图中可以查到该表所有的字段,select * from information_schema.columns t where table_name = 'test_users',
4、查询表中不存在的字段,执行无返回结果,
select * from information_schema.columns t
where table_name = 'test_users'
and column_name = 'user_id2'
推荐于2017-11-26
mysql> SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT
-> FROM
-> INFORMATION_SCHEMA.COLUMNS
-> WHERE
-> table_name = 'test_main'
-> AND table_schema = 'test'
-> //
+-------------+-----------+-------------+----------------+
| COLUMN_NAME | DATA_TYPE | IS_NULLABLE | COLUMN_DEFAULT |
+-------------+-----------+-------------+----------------+
| id | int | NO | 0 |
| value | varchar | YES | NULL |
+-------------+-----------+-------------+----------------+
2 rows in set (0.00 sec)
通过上面这个 sql 语句, 能明白么?
就是查询 INFORMATION_SCHEMA.COLUMNS
条件是 表名称是 test_main, 数据库是 test 的所有列的信息。
如果你要查询某些是否存在, 那么再多加一个条件 and COLUMN_NAME = '你指定的列名称'