連続番号 (MS-1、MS-2、...、MS-100、...、MS-800 など) のフィールドを持つ MySQL テーブルがあります。これらの番号は一意の識別子です (主キーではありません)。一連のデータの場合。問題は並べ替えです。このフィールドを取得して、並べ替えに使用する新しいフィールドを生成する方法はありますか? MS-1 を ms0001、MS-845 を ms0845 などにする必要があります。
元の値 (MS-1) を含むフィールドと、正規化された値 "ms0001" を含むフィールドの 2 つのフィールドが必要です。MS-1 は表示に使用され、ms0001 はリンクに使用されます。
また、このフィールドは新しい行に対して自動的に生成される必要があります。
ありがとう!
更新:eggyal が示唆するように、私はこれを試しました:
UPDATE Resources
SET collNum = CONCAT('MS-',LPAD(SUBSTRING_INDEX(eadFaUniqueIdentifier,'-',-1),4,'0')
Resources は問題のテーブル、
collNum は生成しようとしている新しいフィールド、
eadFaUniqueIdentifier には元の値が含まれています。
ただし、次のエラーが表示されます: #1064 - SQL 構文にエラーがあります。2 行目の near '' を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください (MySQL 5.1.61 を使用しています)。