如何检查 MySQL 表中是否存在某列?
mysqlmysqli database更新于 2024/1/24 14:31:00
要了解某列是否存在,我们有以下方法 −
- 借助 DESC 命令
- 使用 SHOW 命令
首先,我们将创建一个包含列的表 −
mysql> CREATE table ColumnExistDemo -> ( -> UniqueId int, -> UniqueName varchar(200), -> UniqueAddress varchar(200) -> ); Query OK, 0 rows affected (0.57 sec)
在第一种方法中,我们将获得包含有意义信息的整个列名。语法如下 −
DESC yourTableName;
让我们应用上述查询来检查列名是否存在。但是,这种方法并不好,因为它会显示所有列。
mysql> DESC ColumnExistDemo;
以下是输出 −
+---------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------+--------------+------+-----+---------+-------+ | UniqueId | int(11) | YES | | NULL | | | UniqueName | varchar(200) | YES | | NULL | | | UniqueAddress | varchar(200) | YES | | NULL | | +---------------+--------------+------+-----+---------+-------+ 3 rows in set (0.01 sec)
第二种方法更好,因为我们可以检查单个列。语法如下 −
SHOW COLUMNS from `yourTableName` LIKE 'yourColumnName';
现在,我正在应用上述查询来检查列是否存在。查询如下 −
mysql> SHOW COLUMNS from `ColumnExistDemo` LIKE 'UniqueName';
以下是输出 −
+------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+--------------+------+-----+---------+-------+ | UniqueName | varchar(200) | YES | | NULL | | +------------+--------------+------+-----+---------+-------+ 1 row in set (0.00 sec)