mysql-计算字母 [英] mysql - count letters
本文介绍了mysql-计算字母的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有人可以告诉我如何在MySQL中计算字符串中的字母吗?
Can anyone tell me how to count the letters in a string in MySQL?
例如:
SELECT numberOfLetters('abc123 def')
将返回6
用字母表示,我是指A-Z和a-z.
By letter, I mean A-Z and a-z.
numberOfLetters当然不是有效的SQL,但是它说明了我正在尝试做的事情.
numberOfLetters is not valid SQL of course, but it illustrates what I am trying to do.
我正在使用的MySQL版本是5.5.27
The version of MySQL that I'm using is 5.5.27
推荐答案
您将需要一个函数:
DROP FUNCTION IF EXISTS numberOfLetters;
DELIMITER //
CREATE FUNCTION numberOfLetters(s VARCHAR(255)) RETURNS INT DETERMINISTIC NO SQL
BEGIN
DECLARE c INT;
DECLARE r INT DEFAULT 0;
DECLARE n INT DEFAULT LENGTH(s);
DECLARE i INT DEFAULT 1;
WHILE i <= n DO
SET c = ASCII(SUBSTRING(s, i, 1));
IF (c >= 65 AND c <= 90) OR (c >= 97 AND c <= 122) THEN
SET r = r + 1;
END IF;
SET i = i + 1;
END WHILE;
RETURN r;
END//
DELIMITER ;
然后致电:
SELECT numberOfLetters('abc123 def');
这篇关于mysql-计算字母的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文