質問

次の問題があります。

私のテーブルは、たとえばTab1が持っています 名前 次のような列「lastName、firstName」。列が「firstName lastName」になるようにしたいです。

これがどのように行われるかについてのアイデアはありますか?コンマが存在しないことに注意してください。ただし、実際に姓を実際にひっくり返す方法を見つけたら、簡単に削除できると思います。

どんな助けも感謝します。

ありがとう。

役に立ちましたか?

解決

@Nameを実際の価値に置き換えます:

SELECT TRIM(SUBSTR(@NAME, LOCATE(",", @NAME) + 1)) AS prename, TRIM(SUBSTR(@NAME, 1, LOCATE(",", @NAME) - 1)) AS surename

これにより、PrenameとSurenameの部分が抽出されます。これにより、データを挿入/変更できるようになりました。

他のヒント

  • 名前列を2つのフィールドに分割する方が良いでしょう。 ファーストネーム苗字, 、あなたが望むあらゆる方法でそれらをフォーマットし、それでも姓で並べ替えることができるように。
  • 使用する substringsubstring_index コンマを見つけて、それらに分割します。を参照してください マニュアル.

あなたの質問に対する答えではありませんが、私はどんな状況でもこれをしません。姓と名を確実に伝える機会を失います。次の名前を検討してください。

Bridget St John
Boutros Boutros Ghali
Karl-Theodor Maria Nikolaus Freiherr von und zu Guttenberg

個別の「姓」と「名」列を保持することをお勧めします。出力を行うときに、それらを連結することができます。

UPDATE table SET name2=CONCAT (TRIM(SUBSTR(name, LOCATE(",", name) + 1)), ' ', TRIM(SUBSTR(name, 1, LOCATE(",", name) - 1)))
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top