根据 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_OriginalFileName
与 FI 02 2015.xlsx
放在同一行
如果 JE_InsertDate
中的值是 2015-03-01
,则将 JE_OriginalFileName
与 FI 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()
我的 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_OriginalFileName
与 FI 02 2015.xlsx
如果 JE_InsertDate
中的值是 2015-03-01
,则将 JE_OriginalFileName
与 FI 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()