dポイントプレゼントキャンペーン実施中!

レコード数かけるフィールド数が何万とあるデータベースのデータの中で
半角カナの部分だけを全角カナに変えたいのですが、何かよい手はありますでしょうか?
半角数字と半角記号(ハイフンやスラッシュなど)はそのままにしておきたいのですが。
xamppの1.7.3を使用しており、MySQL5.14、PHP5.31です。
ご存知の方いらっしゃればアドバイスお願いします。

A 回答 (5件)

文字数制限もあり、連続投稿になります。



半角カタカナを全角カタカナに変換するストアド・ファンクションを、試しに作ってみました。

文字数制限でここには貼り付けできないので、リンクを参照願います。

参考URL:http://blogs.yahoo.co.jp/chuuken_ken_kou/folder/ …
    • good
    • 0

他の方の回答にもありますが、RDBMSの機能だけでやるなら、



(1)replace関数を何度もネストさせて、文字毎に変換
(2)ストアドプロシジャで、文字コードの変換テーブル(リスト)などを作って、文字数分ループさせて変換

といった方法があります。

RDBMSでは障害に備えたログを取得したり、バッファリング、排他制御などがあり、今回のような操作は、オーバヘッドがあります。そのため、アプリ側でやった方が処理がシンプルにでき、軽快にできると思います。また、DB上で更新するより、テキストファイル上でやった方が、やはりシンプルで軽快にできると思います。
いずれにしても、「どの文字をどの文字に変換する」、「どの文字コードをどの文字コードに変換する」といった対応付けしたテーブル、リストを作るなり、流用できるものを入手する必要があります。
ASCIIなどであれば、文字コードに特定の数値を加算するといったことも可能ですが、マルチバイトの文字コードは、そう簡単ではないようです。
    • good
    • 0

他の方の回答にもありますが、文字コードによって若干処理がかわるかも



ストアドプロシージャで半角カタカナ範囲をwhileで回して全角にすれば
いけそうな気がします。

この回答への補足

ストアドプロシージャ・・・聞きなれない言葉です・・・
いったん調べてみますね

補足日時:2011/02/21 22:26
    • good
    • 0

シフトJIS前提ですが


http://www.vector.co.jp/soft/win95/util/se373689 …
こちらは、カナのみ変換対象のソフトのようです。
ただ、テーブルをエクスポートして変換、インポート作業の手間がかかりますね。
それに、変換作業をメモリ上で行うので、環境によっては負荷が高いかもしれません。

この回答への補足

状況の説明不足で申し訳ありませんでした・・・
文字コードはUTF8なので今回はこのソフトの出番はなさそうです。
でもJISのデータベースもよく見かけるので何かと役立ちそうです
情報ありがとうございました。

補足日時:2011/02/21 22:20
    • good
    • 0

使用している文字コードは、何でしょうか?


その列には、半角データしか入れてないですか?

この回答への補足

文字コードはUTF8ですが、どの列に何が入っているかは、
前任者がいなくなったため判りません・・・
例として株式会社グーというような全角と半角が混じったデータもあるようです。

補足日時:2011/02/21 22:12
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す