• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MySQLで特定の文字列を抜き出す方法)

MySQLで特定の文字列を抜き出す方法

このQ&Aのポイント
  • MySQLで特定の文字列を抜き出す方法を解説します。
  • WAMP環境で作ったある情報サイトの運営において、特定の文字列を抜き出す必要があるケースについてご教示ください。
  • 特定の文字列を抜き出す方法において、SUBSTRING関数の使用や英字や桁数の変動に対応する方法についても詳しく解説します。

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

もう少し限定できませんかね? 例えば、AテーブルのBフィールドに"http://~/987654321?"と 記録されていて、それを"987654321"に更新したいとか… むしろ、Webアプリで、テキストを操作した方が簡単かも 知れません。とすれば、データベースに入れる前に加工 します。 単に数字列を持つレコードを抽出するなら以下のような SQLになります。 SELECT * FROM A WHERE B REGEXP '^http.*?/\d{9}\?$' 桁数や英字が入った時はそれに合わせて正規表現を 変えます。その「将来」までに正規表現を覚えてください。

buttero
質問者

お礼

補足を記入していて、本件はMySQLではなくPHPの話であると気づきました。 ご指摘感謝いたします。 質問をする場所がちがいましたので、本件はPHPのところで再度投稿させていただくことにいたします。 MySQLではどのように抽出するか、考え方を教えていただきありがとうございました。とても参考になりました。

buttero
質問者

補足

ありがとうございます。 試しにサンプルのテーブルを作って、アドバイス頂いたコマンドを打ってみました。残念ながらいろいろやってるのですがまだうまくいっていないのですが、regexpというのがあるんですね。参考になります。 今回は、ユーザーの入力をそのままデータベースにいれずに、テーブルにしまう前処理のところで、数字のみの状態に加工してから、テーブルにInsertしたいと思っています。 テーブルへのInsertの部分は実装して安定して動いてくれているので、その前に、どのように書けば数字部分のみ切り出せるか、またアドバイスいただけるとうれしいです。

その他の回答 (1)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

>テーブルにしまう前処理のところで つまり、Webアプリのことですよね。 となると、データベースではなく、JavaとかPHPのように アプリを構築している言語のジャンルの話では? それを示さないと、具体的な回答が得られませんよ。

buttero
質問者

補足

ありがとうございます。 情報不足申し訳ありません。 環境はApache/2.2.4 (Win32) PHP/5.4.22です。 その後、処理として下記のようにすれば良さそう?と考えました。 (1)入力画面 → (2)入力確認画面 → (3)入力完了画面と3ページあるとして、 まず、 <a href="http://www.hogehoge.net/honya/rara/987654321?">あいうえお</a> の情報を(1)で入力してもらい、(2)の入力確認画面に遷移させるときにPOSTで渡し、不要な部分はカットしてからそれを(3)の入力完了ページにPOSTで飛ばしDBにInsertする。 で、そのときの記述方法についてが知識が無くわからないのですが、 最初の<a hrefの部分から最後の</a>まで完全に全体コピペができていない場合を考慮したいと思っています。 たとえば ref="http://www.hogehoge.net/honya/rara/987654321?">あいうえお</a> と頭の部分が一部欠けていたり、 <a href="http://www.hogehoge.net/honya/rara/987654321?">あいうえ のように後ろが欠けていたとしても、987654321の部分だけは完全に抽出したいと思います。 処理としては、 1.(2)の画面でPOSTで入力情報を受け取る 2."?"がある場合は?以降の文字を全てカット 3."/"がある場合は/とその前の文字を全てカット 4.できた文字列を(3)の画面にPOSTで渡し 5.(3)の処理にてDBにInsert こんな感じでいけるかな?と思っていますが、考え方として大丈夫そうでしょうか。 この方法であれば、将来桁数がかわったり、英字が混ざったとしても対応できると考えました。 あと、具体的な記述方法について、未だ見いだせずにいまして、もし可能でしたらサンプルをご教授頂けますと幸いです。 何卒宜しくお願い致します。

関連するQ&A