0

次のようなクエリの結果が与えられた場合

table
-----
fieldSmarty,textBlbs
fieldExcel,textBlah

それらを2つの列に抽出する方法はありますか?

table                | field  | text 
-------------------------------------
fieldSmarty,textBlbs | Smarty | Blbs
fieldExcel,textBlah  | Excel  | Blah

より簡単にする場合、文字列は常にフィールドとテキストで始まります。テーブル ヘッダー名は関連性が低く、それらを分割することから始めるのがよいでしょう。

4

1 に答える 1

2

編集:ダニエルPの調整を含めるように調整

コンマも常にそこにあるのですか?次のようなことができます。

select foo, SUBSTR(foo, 6, INSTR(foo, ',')-6) AS field, 
       SUBSTR(foo, instr(foo, ',')+5) as text 
from table;

構文が少しずれている可能性があります (現時点では、テストするための mysql ボックスがありません)。「field」列の部分文字列は 6 から始まり、「field」という単語を削除します。Instring は、文字列の先頭の位置を取得します (したがって、"smarty Blbs" の例では、12 が返されます)。したがって、コンマを省略したい場合は、1 を引いて 11 番目の位置で停止します。次に、「テキスト」列の部分文字列は、コンマとテキストという単語の後に始まり、文字列の最後まで続きます。

于 2013-10-28T00:18:55.140 に答える