1

SQL 選択結果を操作しようとしています。このように変数をデータベースに保存した<p>asd</p>ので、アプリケーションでは段落として認識されますが、アプリケーションの他の機能で使用したいと考えています。このように「asd」で表示したいのです。

SQLでそれを行う方法はありますか? 私はphpmyadminを使用しています

4

3 に答える 3

2

MySQL 5.1.5 以降を実行している場合は、次のようにXPath関数を使用できますExtractValue()...

SELECT ExtractValue(col1, '/p') FROM xml_test;

ここをクリックして、SQL Fiddle での動作を確認してください

于 2013-06-03T07:57:37.817 に答える
2

はい、次のように select replace を使用できます。

select replace(replace("<p>asd</p>",'<p>',''),'</p>','')

実際に見てみましょう: SQL フィドル

于 2013-06-03T08:04:47.853 に答える
0

この解決策を試してください

SET GLOBAL log_bin_trust_function_creators=1;
DROP FUNCTION IF EXISTS fnStripTags;
DELIMITER |
CREATE FUNCTION fnStripTags( Dirty varchar(4000) )
RETURNS varchar(4000)
DETERMINISTIC 
BEGIN
  DECLARE iStart, iEnd, iLength int;
    WHILE Locate( '<', Dirty ) > 0 And Locate( '>', Dirty, Locate( '<', Dirty )) > 0 DO
      BEGIN
        SET iStart = Locate( '<', Dirty ), iEnd = Locate( '>', Dirty, Locate('<', Dirty ));
        SET iLength = ( iEnd - iStart) + 1;
        IF iLength > 0 THEN
          BEGIN
            SET Dirty = Insert( Dirty, iStart, iLength, '');
          END;
        END IF;
      END;
    END WHILE;
    RETURN Dirty;
END;
|
DELIMITER ;
SELECT fnStripTags('this <html>is <b>a test</b>, nothing more</html>');
于 2013-06-03T07:54:53.210 に答える