MySQL事件调度更新查询

时间:2010-09-08 09:18:58

标签: mysql events

我正在掌握MySQL中的事件调度程序,我正在编写一个查询,以便在每年的同一天更新一列。

我遇到的问题是找出构建更新查询的最佳方法。

每个用户在column_x中都有一个值,它是一个varchar字段,格式为int / int。这些值的范围从7/1到7/11,8 / 1到8 / 11,9 / 1到9/11等

当事件运行时,我想将第一个int递增1,但保持正斜杠之后的数字相同。例如,7/2变为8 / 2,8 / 2变为9/2等

有没有人对如何创建实现此目的的更新语句有一个很好的建议?

感谢。

1 个答案:

答案 0 :(得分:0)

我假设您存储值的列是VARCHAR,因此这里是解决方案:

UPDATE table SET value = CONCAT_WS( '/', (SUBSTRING_INDEX(value,'/',1)+1), SUBSTRING_INDEX(value,'/',-1) )

这会改变:
1/7 - > 2/7
1/8 - > 2/8
1/9 - > 2/9
1/10 - > 2/10
1/11 - > 2/11