2013-04-25 38 views
0

我想要獲得總計的審閱長度,但允許人們添加列表,表格,顏色等。我只想獲得實際審閱的計數字符。有沒有辦法使用正則表達式去除除了真正的單詞之外的所有字符來計算字符?我使用的MySQL 5.5,這裏是當前查詢我:記錄剝離html標籤的計數長度

select sum(COALESCE(length(reviewTxt),0) + COALESCE(length(reviewTxt1),0) + COALESCE(length(reviewTxt2),0) + COALESCE(length(reviewTxt3),0) + COALESCE(length(reviewTxt4),0) + COALESCE(length(reviewTxt5),0) + COALESCE(length(reviewTxt6),0) + COALESCE(length(reviewTxt7),0) + COALESCE(length(reviewTxt8),0) + COALESCE(length(reviewTxt9),0) + COALESCE(length(reviewTxt10),0)) as totalLength 
        from set_reviews 

回答

0

下從http://www.sitepoint.com/forums/showthread.php?656167-PHP-s-strip_tags%28%29-equivalent-MYSQL-function採取:

- = - = - = - = - = - = - = - = - = - = - = - = -

這是PHP函數strip_tags的

delimiter || 

DROP FUNCTION IF EXISTS strip_tags|| 
CREATE FUNCTION strip_tags(x longtext) RETURNS longtext 
LANGUAGE SQL NOT DETERMINISTIC READS SQL DATA 
BEGIN 
DECLARE sstart INT UNSIGNED; 
DECLARE ends INT UNSIGNED; 
SET sstart = LOCATE('<', x, 1); 
REPEAT 
SET ends = LOCATE('>', x, sstart); 
SET x = CONCAT(SUBSTRING(x, 1 ,sstart -1) ,SUBSTRING(x, ends +1)) ; 
SET sstart = LOCATE('<', x, 1); 
UNTIL sstart < 1 END REPEAT; 
return x; 
END; 
|| 
delimiter ; 

mysql> SELECT strip_tags('<a href="HelloWorld.html"><B>Hi, mate!</B></a>') as strip_tags; 

+------------+ 
| strip_tags | 
+------------+ 
| Hi, mate! | 
+------------+ 

1 row in set (0.00 sec) 
+0

我將嘗試這個功能添加到我的分貝和我不斷收到以下錯誤 你的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以找到在'delimiter ||附近使用的正確語法 DROP FUNCTION IF EXISTS strip_tags || CREATE FUNCTION strip_tags(x'in line 1 警告:---> W(1):您的SQL語法錯誤;請查看與您的MySQL服務器版本相對應的手冊, 'delimiter || 刪除功能如果存在strip_tags || CREATE FUNCTION strip_tags(x'在第1行 – Jeff 2013-04-25 16:56:22

+0

你在哪裏執行這條語句?DELIMITER不是MySQL語句 - 它通常由SQL客戶端處理。 – 2013-04-25 17:12:02

+0

嘗試將它添加到數據庫本身來調用,就像我在oracle中所做的一樣。我在ColdFusion中編程,而不是PHP,所以我不知道這將如何設置在那裏 – Jeff 2013-04-25 20:12:54