0

我有一个包含大约 800 行的 mySQL 数据库,其中包含标题

后月年

例如:2012 年 9 月后

这在对数据输出进行排序时会导致问题,如果数据是:

后年月

我找到了可以导出 mysql 数据库并使用 Notepad++ 将 mm-yy 更改为 yy-mm 的主题,但这些都是数字。

在 mysql notepad++ 或其他工具中是否有一个选项可以将月年批量更改为年月?

4

2 回答 2

2

您可以分两步执行此操作,首先创建使用以下语句拆分字符串的函数::: 我从http://blog.fedecarg.com/2009/02/22/mysql-split-string-function/得到这个语句

CREATE FUNCTION SPLIT_STR(
  x VARCHAR(255),
  delim VARCHAR(12),
  pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
       LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
       delim, '');

现在假设您的表名是 test 并且保存数据的字段是日期,您可以运行以下查询 :::

UPDATE test SET dates = CONCAT('POST ', (SELECT SPLIT_STR(dates, ' ', 3)), ' ', (SELECT SPLIT_STR(dates, ' ', 2)));
于 2012-09-04T10:36:10.800 回答
1

创建一个正则表达式并替换所有出现的地方。如果您愿意,可以在 Notepad++ 中执行此操作。像这样:

寻找:Post (\w+) (\d{4})

代替:Post \2 \1

编辑:另一种选择是在排序时为这些字段创建一个自定义比较器,这样您就可以保持当前数据不变。

于 2012-09-04T10:23:00.850 回答