计算字符串中的大写字母 [英] Count capital letters in String
本文介绍了计算字符串中的大写字母的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何使用MySQL查询来计算大写字母? 我目前正在
How can i count Capital letters with a MySQL-query? I'm trying it at the moment with
COUNT(IF(MATCH(post_text) AGAINST('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'),1,NULL))
但这给了我一个错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U' at line 4
我想,我不允许在糟透了的AGAINST子句中使用列表
I guess, I'm not allowed not use lists in the AGAINST clauses which sucks
那么,有没有办法实现这一目标?
So, is there a way to achieve this?
推荐答案
尝试使用此功能-
DELIMITER $$
CREATE FUNCTION cnt_up_case(str VARCHAR(255))
RETURNS VARCHAR(255)
NOT DETERMINISTIC
CONTAINS SQL
BEGIN
SET @cnt = 0;
SET @len = length(str);
SET @i = 1;
WHILE @i <= @len
DO
SET @c = substring(str, @i, 1);
IF ascii(@c) > 64 AND ascii(@c) < 91 THEN
SET @cnt = @cnt + 1;
END IF;
SET @i = @i + 1;
END WHILE;
RETURN @cnt;
END
$$
DELIMITER ;
示例:
SET @Param1 = 'AbCdE';
SET @ResultValue = cnt_up_case(@Param1);
SELECT @ResultValue;
--------------
3
这篇关于计算字符串中的大写字母的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文