mysql判断一个表有无某个字段名

时间:2022-12-02 14:08:15
现在我要实现 如果表$class[chanpin]没有RADMIN_ENABLE字段, 就添加这个字段, 并且把表中所有数据的该字段都置为1。这个要怎么写?下面写的不太对, 不管原先有没有RADMIN_ENABLE都置1了

                @$db->updatequery("ALTER TABLE `".$class[chanpin]."` ADD `RADMIN_ENABLE` VARCHAR( 80 ) NOT NULL AFTER `AUTOCFG_REFRESH`");

                @$db->updatequery("update `".$class[chanpin]."` set `RADMIN_ENABLE`='1' where 1");

6 个解决方案

#1


MYSQL 5以上可以查找系统表

#2


参考一下这个,如果是5.0或以上版本:
mysql> select column_name from information_schema.columns where table_name='tt';
+-------------+
| column_name |
+-------------+
| id_from     |
| id_to       |
| ctry        |
| cntry       |
| country     |
+-------------+

#3


打开上述记录集,循环判断
OR
用捕获错误的方法、
OR
用ADO、ADOX方法取得所有字段名

#4


4.1的数据库,没有information_schema

#5


引用 4 楼 tian428 的回复:
4.1的数据库,没有information_schema

那可以用这个查询: 
mysql> show columns from tt;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id_from | varchar(32) | YES  |     | NULL    |       |
| id_to   | varchar(32) | YES  |     | NULL    |       |
| ctry    | varchar(32) | YES  |     | NULL    |       |
| cntry   | varchar(32) | YES  |     | NULL    |       |
| country | varchar(32) | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
5 rows in set (0.02 sec)

#6


4.1的数据库

你可以直接运行这个 DESC tableName columnName; 看看有没有记录集返回。

#1


MYSQL 5以上可以查找系统表

#2


参考一下这个,如果是5.0或以上版本:
mysql> select column_name from information_schema.columns where table_name='tt';
+-------------+
| column_name |
+-------------+
| id_from     |
| id_to       |
| ctry        |
| cntry       |
| country     |
+-------------+

#3


打开上述记录集,循环判断
OR
用捕获错误的方法、
OR
用ADO、ADOX方法取得所有字段名

#4


4.1的数据库,没有information_schema

#5


引用 4 楼 tian428 的回复:
4.1的数据库,没有information_schema

那可以用这个查询: 
mysql> show columns from tt;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id_from | varchar(32) | YES  |     | NULL    |       |
| id_to   | varchar(32) | YES  |     | NULL    |       |
| ctry    | varchar(32) | YES  |     | NULL    |       |
| cntry   | varchar(32) | YES  |     | NULL    |       |
| country | varchar(32) | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
5 rows in set (0.02 sec)

#6


4.1的数据库

你可以直接运行这个 DESC tableName columnName; 看看有没有记录集返回。