谁能告诉我如何计算 MySQL 中字符串中的字母?
例如:
SELECT numberOfLetters('abc123 def')
Run Code Online (Sandbox Code Playgroud)
将返回 6
我所说的字母是指 AZ 和 az。
numberOfLetters 当然不是有效的 SQL,但它说明了我想要做的事情。
我使用的MySQL版本是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 ;
Run Code Online (Sandbox Code Playgroud)
然后调用:
SELECT numberOfLetters('abc123 def');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2895 次 |
| 最近记录: |