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(replace("<p>asd</p>",'<p>',''),'</p>','')

实际操作:SQL fiddle

于 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 回答