0

これは簡単だろうと思っていました...そうではないかもしれません。「フルネーム」を含むテーブルがあり、名と姓を 2 つの列 (fname と lname) に分割したいと考えています。

次の構文は、必要なデータを提供します。

SELECT 
`fullname` , 
SUBSTRING_INDEX( SUBSTRING_INDEX(`fullname` ,' ', 2) ,' ' ,-1) AS fname, 
SUBSTRING_INDEX(`fullname` ,' ', 1)AS lname
FROM MyTable

...しかし、「fname」フィールドと「lname」フィールドを取得して、同じテーブルの別々の列に保存するにはどうすればよいですか?

[データの例 -- 人の名前が John Michael Jones の場合、「フルネーム」フィールドは次のようになります: JONES JOHN MICHAEL ]

4

3 に答える 3

0

同じテーブルで更新を実行する場合は、次を使用できます。

update mytable
set fname = SUBSTRING_INDEX( SUBSTRING_INDEX(`fullname` ,' ', 2) ,' ' ,-1), 
  lname = SUBSTRING_INDEX(`fullname` ,' ', 1)

デモで SQL Fiddle を参照してください

于 2013-02-12T14:47:02.137 に答える
0

名と姓の値に更新する場合は、 update を使用する必要があります。

update MyTable
set fname = SUBSTRING_INDEX( SUBSTRING_INDEX(`fullname` ,' ', 2) ,' ' ,-1), 
  lname = SUBSTRING_INDEX(`fullname` ,' ', 1)

大文字で設定する場合は、ユーザーの大文字機能と同様に

 update MyTable
    set fname = upper(SUBSTRING_INDEX( SUBSTRING_INDEX(`fullname` ,' ', 2) ,' ' ,-1)), 
      lname = upper(SUBSTRING_INDEX(`fullname` ,' ', 1))
于 2013-02-12T14:53:01.173 に答える
0

テーブルを更新して、列をfullname

update MyTable
set fname = SUBSTRING_INDEX(SUBSTRING_INDEX(`fullname` ,' ', 2) ,' ' ,-1),
    lname = SUBSTRING_INDEX(`fullname` ,' ', 1)
于 2013-02-12T14:42:10.093 に答える