mysql-计算字母 [英] mysql - count letters

查看:73
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆