質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

mysqli

MySQLiはPHP5より導入されているデータベース用のドライバです。MySQL 4.1.3以降の新しい機能の利点をまとめています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

置換

置換とは文字列中の特定の文字に対して、別の文字列に置き換えることを指します。

Q&A

4回答

2111閲覧

SQLの範囲置換の文について

ichi381104

総合スコア8

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

mysqli

MySQLiはPHP5より導入されているデータベース用のドライバです。MySQL 4.1.3以降の新しい機能の利点をまとめています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

置換

置換とは文字列中の特定の文字に対して、別の文字列に置き換えることを指します。

0グッド

0クリップ

投稿2016/10/13 23:06

編集2016/10/13 23:44

###前提・実現したいこと
fooテーブルの中のbarカラムの中にある「<img src='●●●/●●●/●●●.jpg' alt='' />」を削除したいのですが
UPDATE foo SET bar=REPLACE (bar,"<img src='●●●/●●●/.*alt='' />","")
で書いたら機能しませんでした。。
どのように書いたら良いか教えていただけませんでしょうか。。??
お願いします。
###発生している問題・エラーメッセージ

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

popobot

2016/10/13 23:35

fooテーブルのbarカラムですよね
ichi381104

2016/10/13 23:38

失礼しました。。おっしゃる通り、「fooテーブルのbarカラム」になります。
A.Ichi

2016/10/13 23:50

もしかしてREPLACE関数が正規表現に対応していないのでは?
katsuya141

2016/10/14 00:50 編集

間違えて解答をココに書いてしまったため削除
guest

回答4

0

かなり書き方が間違っています。最初にマニュアルくらい確認されては?
MySQL UPDATE 構文

投稿2016/10/13 23:13

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

MySQLにはREGEXP_REPLACEのような正規表現で、置換する関数はありません。
ユーザが作ったものならありますので、導入すれば使えるようになります。
https://github.com/hholzgra/mysql-udf-regexp

代替案としては、PHPなどで一旦SELECTしたあと、PHPのpreg_replace関数で置換したあと、UPDATEするとかですかね

投稿2016/10/13 23:38

popobot

総合スコア6586

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

set bar= "" where bar like "<img src='●●●/●●●/.%alt='' />"

投稿2016/10/14 00:51

katsuya141

総合スコア367

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

fooテーブルの中のbarカラムの中にある「<img src='●●●/●●●/●●●.jpg' alt='' />」を削除したいのですが

●●●/●●●/●●● の部分が任意の文字列ということなら、

SQL

1UPDATE foo 2SET bar = CONCAT(LEFT(bar,INSTR(bar,"<img src='")+1), 3 MID(bar,INSTR(bar,".jpg' alt='' />")+15)) 4WHERE bar like "%<img src='%.jpg' alt='' />%";

もっと複雑なパターンなら、他の回答者の正規表現を利用する方法で。

投稿2016/10/14 05:40

編集2016/10/14 05:42
hatena19

総合スコア33692

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問