1

次のようなテキストを含む説明と呼ばれるフィールドを持つテーブルがあります

|Description                              |
|-----------------------------------------|
|This is a text <a>blah</a> <br/> <img /> |
|This is <b>second</b> <a>row</a>         |

" < " と " > "の間のすべてを削除したい

必要な出力

|Description                              |
|-----------------------------------------|
|This is a text blah                      |
|This is second row                       |

とにかく、MYSQLクエリを使用してこれを達成できますか? 私は現在、権利を持っていないため、ストアドプロシージャを同じように使用できません。ストアド プロシージャを使用するためのアクセスを要求しましたが、時間がかかるため、このビットを早急に終了する必要があります。

ありがとう。

更新:私の質問はテキスト文字列から 2 文字の間の文字列を削除するに似ていますが、MYSQL クエリで実行したいと考えています。

4

4 に答える 4

2

要するに、できません。PHP のようなより高度な言語が必要です。SQL クエリは、文字列操作を行う場所ではありません。

于 2012-09-11T16:18:54.520 に答える
1

ワイルドカードを使用して、左括弧と右括弧の間の未知のテキストをキャプチャする REPLACE() はどうですか? http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_replace

于 2012-09-11T16:39:57.673 に答える
0

この質問はまだGoogleの検索結果の上位にあるため、答えが誰かの役に立つかもしれません:

2 つの文字の間のコンテンツを置き換えるクイック機能。言葉でも機能するはずですが、言葉でテストしていません。次の文字列で削除する場合: 「これは [デモ] です」

[ と ] の間の文字列:

select deletestr("これは [デモ] です" ,'[',']');

そして機能:

 CREATE DEFINER=`replace_with_your_db`@`%` 
FUNCTION `deletestr` (`inputstr` TEXT CHARSET utf8, `fromstr` VARCHAR(10) CHARSET utf8, `tostr` VARCHAR(10) CHARSET utf8) RETURNS text CHARSET utf8
    NO SQL
RETURN
replace(inputstr,substr(inputstr, locate(fromstr,inputstr),locate(tostr,inputstr)-locate(fromstr,inputstr)+length(tostr)),'')
于 2016-06-17T22:06:05.743 に答える
0

サーバー側の言語として php を使用している場合は、strip_tags関数を使用してタグを削除できます。

于 2012-09-11T16:48:31.523 に答える