根据Mysql

时间:2015-11-01 10:06:27

标签: mysql sql sql-update append

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

表格名称: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_OriginalFileName(日期类型)在JE_InsertDate中插入值。例如:

如果JE_InsertDate中的值为2015-02-01,则将JE_OriginalFileName放在与FI 02 2015.xlsx相同的行上

如果JE_InsertDate中的值为2015-03-01,则JE_OriginalFileName中的值与FI 03 2015.xlsx中的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 放在同一行中

表格需要如下所示:

name = ["Jon", "Bede", "Joe"]
score = [123, 11, 43]

for i in sorted(zip(name, score), key=lambda x:x[1]):
    print(i[0], i[1], sep=': ')

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

  

评论:文件名中有空格[(FI MM YYYY).xlsx]。

非常感谢!

2 个答案:

答案 0 :(得分:1)

您可以尝试使用CONCAT()

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

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

答案 1 :(得分:0)

您需要将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

希望这会有所帮助..