mySQL中如何查询指定的表中是否存在某个列?

2024-12-10 00:44:05
推荐回答(2个)
回答1:

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'

回答2:


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  =  '你指定的列名称'