1. ホーム
  2. mysql

[解決済み] 各単語の最初の文字を大文字にする(既存のテーブルの場合

2022-02-07 23:03:45

質問

既存のテーブル 'people_table' に、フィールド full_name .

多くのレコードで 'full_name' フィールドの大文字と小文字が正しく入力されていません。 'fred Jones' または 'fred jones' または 'Fred jones' .

でこれらの誤ったエントリーを見つけることができます。

SELECT * FROM people_table WHERE full_name REGEXP BINARY '^[a-z]';

見つかった各単語の最初の文字を大文字にするにはどうすればよいですか? 例)。 'fred jones' は次のようになります。 'Fred Jones' .

解決方法は?

MySQLにはそのための関数がないので、自分で書く必要があります。次のリンクに実装があります。

http://joezack.com/index.php/2008/10/20/mysql-capitalize-function/

これを使うには、まず、データベースに関数を作成する必要があります。これは、例えば MySQL Query Browser を使って行うことができます(データベース名を右クリックして Create new Function を選択します)。

関数を作成したら、次のようなクエリでテーブルの値を更新することができます。

UPDATE users SET name = CAP_FIRST(name);