ここ十数年の間、DBを開発で多用していたが、いずれの機会もデータを記録や更新、削除するのがほとんどでした。
今回のプロジェクトでは、ユーザがGUIで簡単にデータにパッチ等を実施し、データメンテナンスを行う機能を作成するにあたり、たいした内容ではないのですが、「へー」と気づいた事を備忘的な意味合いで書いてみます。
SQLでデータを置換したいとき、REPLACE
関数を使います。
使い方はPerlのREPLACE関数とまったく同じでREPLACE("被置換文字列", "置換文字列", "置換後文字列")
と、非常に理解しやすいものです。
SELECT NAME AS "敬称有", REPLACE(NAME, "様", "") AS "敬称略" FROM SAMPLE_TABLE; 敬称有 敬称略 --------+---------- 鈴木様 鈴木 田中様 田中 ....
ここまでは、知っている方も多いでしょうし、ネットで調べてもすぐ情報を得られ、理解できます。
このREPLACE関数
って、UPDATE文でも使えるって知ってました?
もしかしたら、こんなの当り前なのかもしれませんが。。。。
UPDATE SAMPLE_TABLE SET NAME = REPLACE(NAME, "様", ""); // sample_table(変更前) // sample_table(変更後) rowid name rowid name --------+---------- → --------+---------- 1 鈴木様 1 鈴木 2 田中様 2 田中
知らなかった今までは、サブクエリだのストアド、外部プログラムなどでグリグリ、ゴリゴリやってました。涙