根据 Mysql 中同一 table 的另一列更新列数据

Update column data according to Another column on the same table in Mysql

我的 table 现在看起来像这样(我的问题需要的样本):

table 的姓名:JurnalEntries.dbo

JE_InsertDate  JE_OriginalFileName

2015-04-01              NULL 
2015-04-01              NULL
2015-03-01              NULL
2015-03-01              NULL
2015-02-01              NULL
2015-02-01              NULL

我想根据 JE_InsertDate(日期类型)在 JE_OriginalFileName 中插入值。例如:

如果 JE_InsertDate 中的值为 2015-02-01,则将 JE_OriginalFileNameFI 02 2015.xlsx

放在同一行

如果 JE_InsertDate 中的值是 2015-03-01,则将 JE_OriginalFileNameFI 03 2015.xlsx

放在同一行

table 需要如下所示:

JE_InsertDate  JE_OriginalFileName

2015-04-01              FI 04 2015.xlsx 
2015-04-01              FI 04 2015.xlsx
2015-03-01              FI 03 2015.xlsx
2015-03-01              FI 03 2015.xlsx
2015-02-01              FI 02 2015.xlsx
2015-02-01              FI 02 2015.xlsx

你能帮我解决这个问题吗?

Comment: There are spaces in the file name[(FI MM YYYY).xlsx].

非常感谢!

您需要使用 CASE 进行更新。

UPDATE JurnalEntries.dbo
    SET JE_OriginalFileName = CASE
    WHEN JE_InsertDate='2015-02-01' THEN 'FI 02 2015.xlsx'
    WHEN JE_InsertDate='2015-03-01' THEN 'FI 03 2015.xlsx'
    END

希望这对您有所帮助..

您可以尝试使用 CONCAT()

UPDATE JurnalEntries.dbo
SET JE_OriginalFileName = CONCAT('FI ', MONTH(JE_InsertDate),' ', YEAR(JE_InsertDate),'.xlsx')

如果 JE_InsertDate 是一个日期,否则使用 SUBSTRING 而不是 YEAR() 和 MONTH()