我是Mysql的新手.我想在表中添加一个列,其值取决于同一个表中的另一个列值.例如,我有company_table如下:
fldId | companyName | date
--------------------------------
1 | adeco | 2012-01-12
2 | mic | 2001-03-09
3 | manpower | Null
4 | linar | Null
5 | dlank | 1999-02-28
Run Code Online (Sandbox Code Playgroud)
我想在此表中添加'fldState'列,具体取决于'date'列的值.例如,如果'date'列的值不是Null,那么'fldState'的值应该是1,如果它是Null,那么'fldState'的值应该是2.如下所示
fldId | companyName | date | fldState
--------------------------------------------
1 | adeco | 2012-01-12 | 1
2 | mic | 2001-03-09 | 1
3 | manpower | Null | 2
4 | linar | Null | 2
5 | dlank | 1999-02-28 | 1
Run Code Online (Sandbox Code Playgroud)
Joh*_*Woo 16
从现有表中,您需要创建一个ALTER
语句,以便添加新列.
ALTER TABLE mytableName ADD fldState INT;
Run Code Online (Sandbox Code Playgroud)
语句成功执行后,您现在可以更新所有记录,
UPDATE myTableName
SET fldState = IF(date IS NULL, 2, 1)
Run Code Online (Sandbox Code Playgroud)
小智 7
要添加新的新列,您可以使用以下命令
ALTER TABLE company_table ADD fldState;
Run Code Online (Sandbox Code Playgroud)
如果您想在希望的地方添加这些列.如果你想在companyName之后添加fldState,那么请使用如下所示
ALTER TABLE company_table ADD fldState AFTER companyName;
Run Code Online (Sandbox Code Playgroud)
如果要将Column添加为First Column,则使用aslike follow
ALTER TABLE company_table ADD fldState FIRST;
Run Code Online (Sandbox Code Playgroud)
如果你不再使用任何东西,那么默认它将被放置在最后.
现在使用如下命令复制列数据.
UPDATE company_table SET fldState = IF(date IS NULL, 2, 1);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
26688 次 |
最近记录: |