我有一个带有序列号字段(MS-1、MS-2、...、MS-100、...、MS-800 等)的 MySQL 表。这些数字是唯一标识符(不是主键)对于一组数据。问题是排序。有没有办法获取这个字段并生成一个用于排序的新字段?它需要将 MS-1 转换为 ms0001、MS-845 到 ms0845 等。
我需要以两个字段结束:一个包含原始值 (MS-1),另一个包含标准化值“ms0001”。MS-1 将用于显示,而 ms0001 将用于链接。
此外,需要为新行自动生成此字段。
谢谢!
更新:根据 eggyal 的建议,我尝试了这个:
UPDATE Resources
SET collNum = CONCAT('MS-',LPAD(SUBSTRING_INDEX(eadFaUniqueIdentifier,'-',-1),4,'0')
Resources 是有问题的表,
collNum 是我要生成的新字段,
eadFaUniqueIdentifier 包含原始值。
但是,我收到此错误:#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的 '' 附近使用正确的语法。(我使用的是 MySQL 5.1.61。)