我有一个包含大约 800 行的 mySQL 数据库,其中包含标题
后月年
例如:2012 年 9 月后
这在对数据输出进行排序时会导致问题,如果数据是:
后年月
我找到了可以导出 mysql 数据库并使用 Notepad++ 将 mm-yy 更改为 yy-mm 的主题,但这些都是数字。
在 mysql notepad++ 或其他工具中是否有一个选项可以将月年批量更改为年月?
您可以分两步执行此操作,首先创建使用以下语句拆分字符串的函数::: 我从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)));
创建一个正则表达式并替换所有出现的地方。如果您愿意,可以在 Notepad++ 中执行此操作。像这样:
寻找:Post (\w+) (\d{4})
代替:Post \2 \1
编辑:另一种选择是在排序时为这些字段创建一个自定义比较器,这样您就可以保持当前数据不变。