2016-06-27 18 views
2

ユーザーのテーブルに 'full_name'という列があります。私はテーブル構造を変更したくないので、それぞれの名前の最初のスペースを2つの文字(たとえば%$)に置き換える方法を探しています。そのため、私のコードは最初のスペースと2番目のスペース名。MySQL - 最初のスペースを文字に置き換える

これにより、指定された名前が二重の名前であっても、将来の名前の入力が可能になります。

ありがとうございます!

+0

あなたは試してみました何?これは最初のスペースで分割することでコード内で達成できますか? – Arcath

+0

なぜあなたはテーブル構造を変更していませんか? – Sonny

+0

テーブルは私が使用しているCMSの中核です。私は、テーブルの構造を変更すると予期しない結果が生じるかもしれないと思います。 –

答えて

0

他の人も示唆しているように、最善のことは、姓と名を別々の列にするようにスキーマを再設計することです。これを行うことができず、姓と名を抽出するためのクエリが必要な場合は、次のクエリを検討してください。特別な区切り文字を追加する必要はないと思います。むしろ、標準のMySQL文字列関数を使うことができます。ここで

は、あなたが最初の名前(最初のスペースまですべてをバックアップ)を抽出するために使用できるクエリです:ここでは

SELECT SUBSTRING(full_name, 1, INSTR(full_name, ' ')-1) 

は、残りのクエリです:

SELECT SUBSTRING(full_name, 
       INSTR(full_name, ' ') + 1, 
       CHAR_LENGTH(full_name) - INSTR(full_name, ' ')) 
0

私はあなたのスタックで使用しているPHPまたは何らかの言語で変換スクリプトを書いています。指定したフォーマットを使用する新しいコードを配備する直前に実行します。

関連する問題