3

マイテーブル列 -

ここに画像の説明を入力

私の予想される出力は、列で変更されます-

Smith, Allen, Doyle, Dennis, Baker, Waker

これは私が試したものですが、機能していません:( -

UPDATE TABLE `employee`
SET last_name = UCASE(LEFT(lower(last_name), 1))

UPDATE TABLE `employee`
SET last_name = ucase(lower(last_name),1)

このリンクもたどった -リソース

エラー -

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TABLE `employee` SET last_name = UCASE(LEFT(lower(last_name), 1))' at line 1

私が間違っていることと修正方法を教えてください。

4

3 に答える 3

9

TABLEは予約済みキーワードです。バッククォートでエスケープする必要があります。

TABLEクエリに含めるべきではないと思います(タイプミスだと思います

UPDATE employee
SET last_Name = CONCAT(UCASE(LEFT(last_Name, 1)), LCASE(SUBSTRING(last_Name, 2)))
于 2013-01-10T05:35:27.997 に答える
2

これを試してみてください

update `employee` 
set name=concat(left(upper(last_name),1),right(lower(last_name),length(last_name)-1));
于 2013-01-10T06:00:51.763 に答える
0

ここで誰かが名前と姓を大文字にする方法も探している場合は、両方を含む名前列で、次のスニペットが役立つ可能性があります。

 SELECT
    CONCAT( 
     UCASE(LEFT(substring_index(name, ' ',1),1)), 
     LCASE(SUBSTRING(substring_index(name, ' ',1),2)),
    ' ',
     UCASE(LEFT(substring_index(name, ' ',-1),1)), 
     LCASE(SUBSTRING(substring_index(name, ' ',-1),2))
    ) as name
FROM table
于 2014-04-23T02:36:41.170 に答える