Mysqlは文字列の中で文字を移動する

PHPなどに頼らずに、文字列内の文字を移動することがMySQLで可能かどうか疑問に思っています。

例:

ブルーダリア、

"ブルーダリア"になる必要があります。だからコンマを取り除いて、それの後に "the"を最初に移動してください。カンマを削除するには、次のようにします。

... SET field = REPLACE(field, CHAR(47), '')

しかし、 "the"のすべてのインスタンスを置き換えることはできないので、 "the"を最初に移動することは難しいようです。最後のカンマの後のインスタンスだけを置き換えることはできません。

これはPHPで簡単に行うことができますが、私はSQLでそれをやり遂げることができるのだろうかと思っていました。

ありがとう。

0

1 答え

試してみることができます:

... SET field = CONCAT_WS(' ', TRIM(SUBSTRING_INDEX(field, ',', -1)), TRIM(SUBSTRING_INDEX(field, ',', 1)))

簡単な説明:

SUBSTRING_INDEX splits string by delimiter. -1 takes first part from the right; 1 first from the left.

TRIM removes unnecessary whitespaces.

CONCAT_WS merges parts of string with spacebar separator.

1
追加された
うわー、これは実際に動作します。私は外部のスクリプト言語がなければ不可能だと思った。どうもありがとうございます!
追加された 著者 kakubei,