4

データベーステーブル内にデータを書き込む複数のWebサービスがあります。特定のフィールドについて、大文字の文字列を小文字の文字列に自動的に変換したいと思います。このタスクを実行するmysql関数はありますか?

これがテーブルであると仮定します。

id | name | language

言語フィールド内で、Webサービスが大文字の文字列(IT)を書き込む場合があります。MySQL内で直接小文字の文字列( "it")に変換したいと思います。

ありがとう

4

2 に答える 2

29

テーブルにトリガーを定義します。

CREATE TRIGGER lcase_insert BEFORE INSERT ON my_table FOR EACH ROW
SET NEW.language = LOWER(NEW.language);

CREATE TRIGGER lcase_update BEFORE UPDATE ON my_table FOR EACH ROW
SET NEW.language = LOWER(NEW.language);

次に、既存のデータを更新します。

UPDATE my_table SET language = LOWER(language);
于 2012-10-09T08:45:28.150 に答える
3

あなたが使用できる:

LOWER("some_string");

参照:LOWER

このような意味ですか。

追加:次のように、テーブルにデータを挿入するときに小文字に変換できます。

INSERT INTO your_table (name, language)
    VALUES ( "Some Name", LOWER( "SOME VALUE" ) );

または、 dbに挿入する前に、サーバー側スクリプトから言語フィールドに挿入する値を小文字に変換することをお勧めします。

トリガーを使用して自動変換を行うこともできますが、テーブルからデータをフェッチするときにLOWER()関数を使用することをお勧めします。

SELECT LOWER(language) AS language FROM your_table_name
于 2012-10-09T07:37:29.403 に答える