记得改一改

这个是关键代码

delimiter $$
create procedure get_name_str()
begin
    declare name_length int;
    declare i int;
    declare single_char char(1);
    declare student_name varchar(255);
    declare done bool default false;

    declare cur cursor for select 姓名 from md;
    declare continue handler for not found set done = true;

    truncate table zi;

    open cur;

    fetch_loop: loop
        fetch cur into student_name;
        if done then
            leave fetch_loop;
        end if;

        set name_length = char_length(student_name);
        set i = 1;

        char_loop: loop
            if i > name_length then
                leave char_loop;
            end if;

            set single_char = substring(student_name, i, 1);

            insert into zi (字, 字数)
            values (lower(single_char), 1)
            on duplicate key update 字数 = 字数 + 1;

            set i = i + 1;
        end loop char_loop;
    end loop fetch_loop;

    close cur;

    select 字 from zi;
    select count(distinct 字) into @n2 from zi;
    select @n2 as total_unique_chars;
end $$
delimiter ;

Enter password: ****
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.53 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| lll                |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

mysql> create database last;
Query OK, 1 row affected (0.00 sec)

mysql> set names gbk;
Query OK, 0 rows affected (0.00 sec)

mysql> use last;
Database changed
mysql> source C:\Users\Administrator\Desktop\文件接收柜\ks.sql;
ERROR:
Unknown command '\U'.
ERROR:
Unknown command '\A'.
ERROR:
Unknown command '\D'.
ERROR:
Unknown command '\?.
ERROR:
Unknown command '\k'.
Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 88 rows affected (0.00 sec)
Records: 88  Duplicates: 0  Warnings: 0

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

mysql> delimiter $$
mysql> create procedure get_name_str()
    -> begin
    ->     declare name_length int;
    ->     declare i int;
    ->     declare single_char char(1);
    ->     declare student_name varchar(255);
    ->     declare done bool default false;
    ->
    ->     declare cur cursor for select 姓名 from md;
    ->     declare continue handler for not found set done = true;
    ->
    ->     truncate table zi;
    ->
    ->     open cur;
    ->
    ->     fetch_loop: loop
    ->         fetch cur into student_name;
    ->         if done then
    ->             leave fetch_loop;
    ->         end if;
    ->
    ->         set name_length = char_length(student_name);
    ->         set i = 1;
    ->
    ->         char_loop: loop
    ->             if i > name_length then
    ->                 leave char_loop;
    ->             end if;
    ->
    ->             set single_char = substring(student_name, i, 1);
    ->
    ->             insert into zi (字, 字数)
    ->             values (lower(single_char), 1)
    ->             on duplicate key update 字数 = 字数 + 1;
    ->
    ->             set i = i + 1;
    ->         end loop char_loop;
    ->     end loop fetch_loop;
    ->
    ->     close cur;
    ->
    ->     select 字 from zi;
    ->     select count(distinct 字) into @n2 from zi;
    ->     select @n2 as total_unique_chars;
    -> end $$
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ;
mysql>
mysql> CALL get_name_str();
+----+
| 字   |
+----+
| 谢  |
| 佩   |
| 容   |
| 邝   |
| 灏   |
| 林   |
| 郭   |
| 乔   |
| 治   |
| 彭   |
| 炜   |
| 健   |
| 蔡   |
| 抒   |
| 恒   |
| 高   |
| 灿   |
| 钊   |
| 林   |
| 清   |
| 城   |
| 谭  |
| 文   |
| 陈   |
| 建   |
| 鸿   |
| 欧  |
| 阳   |
| 彤  |
| 彤  |
| 何   |
| 发   |
| 科   |
| 苏   |
| 健   |
| 灏   |
| 龙   |
| 麒   |
| 宇   |
| 李   |
| 俊   |
| 杰   |
| 赖   |
| 济   |
| 民   |
| 马   |
| 培   |
| 林   |
| 黄   |
| 家   |
| 希  |
| 林   |
| 晓   |
| 敏   |
| 黄   |
| 日   |
| 扬   |
| 刘   |
| 楚   |
| 豪   |
| 肖  |
| 国   |
| 金   |
| 庄  |
| 静   |
| 宜   |
| 叶  |
| 泓   |
| 伸   |
| 张   |
| 文   |
| 达   |
| 祝  |
| 振   |
| 杰   |
| 邓   |
| 丽   |
| 欣   |
| 刘   |
| 邦   |
| 铭   |
| 洪   |
| 喜  |
| 珊  |
| 杨   |
| 子   |
| 峰   |
| 刘   |
| 恒   |
| 许   |
| 小  |
| 源  |
| 梁   |
| 英  |
| 伟  |
| 严   |
| 俊   |
| 杰   |
| 郭   |
| 景   |
| 群  |
| 黄   |
| 振   |
| 发   |
| 甘   |
| 子   |
| 贤   |
| 刘   |
| 浩   |
| 何   |
| 宇   |
| 龙   |
| 曾   |
| 加   |
| 宝   |
| 唐   |
| 金   |
| 灵   |
| 麦   |
| 一  |
| 涛   |
| 林   |
| 展  |
| 弘   |
| 黄   |
| 家   |
| 乐   |
| 郑  |
| 欢   |
| 祖   |
| 刘   |
| 薇  |
| 雪  |
| 杨   |
| 文   |
| 塘   |
| 何   |
| 家   |
| 伟  |
| 石  |
| 欣   |
| 雨   |
| 丘   |
| 佳   |
| 烨   |
| 欧  |
| 悦   |
| 李   |
| 均   |
| 铄   |
| 张   |
| 宇   |
| 王   |
| 梓   |
| 帆   |
| 林   |
| 桐  |
| 宇   |
| 叶  |
| 芃  |
| 林   |
| 志  |
| 聪   |
| 林   |
| 泽   |
| 涛   |
| 陈   |
| 庆   |
| 楠   |
| 刘   |
| 斌   |
| 吴   |
| 燕   |
| 羽   |
| 黎   |
| 明   |
| 璋   |
| 钟   |
| 明   |
| 智   |
| 张   |
| 志  |
| 成   |
| 黄   |
| 希  |
| 扬   |
| 唐   |
| 颂   |
| 尧  |
| 邓   |
| 禧   |
| 胜  |
| 曾   |
| 欣   |
| 晴   |
| 周   |
| 烨   |
| 高   |
| 小  |
| 雪  |
| 张   |
| 耀  |
| 文   |
| 奕   |
| 龙   |
| 张   |
| 宝   |
| 程   |
| 潘   |
| 林   |
| 煌   |
| 周   |
| 豪   |
| 吴   |
| 嘉   |
| 黄   |
| 国   |
| 新   |
| 陈   |
| 超   |
| 杰   |
| 赖   |
| 世   |
| 润   |
| 陈   |
| 庚   |
| 豪   |
| 姚  |
| 映  |
| 晖   |
| 许   |
| 杰   |
| 维  |
| 何   |
| 啟   |
| 朗   |
| 张   |
| 梓   |
| 填   |
| 冀   |
| 翼   |
| 林   |
| 杜   |
| 锋   |
| 蔡   |
| 锦   |
| 涛   |
| 刘   |
| 晓   |
| 圳   |
| 刁   |
| 锐   |
+----+
252 rows in set (0.16 sec)

+--------------------+
| total_unique_chars |
+--------------------+
|                166 |
+--------------------+
1 row in set (0.23 sec)

Query OK, 0 rows affected (0.23 sec)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值