zoukankan      html  css  js  c++  java
  • mysql拆分字符串为多行(逗号等分割)

    sql示例:
    SELECT
        substring_index(substring_index('张三,李四,王五,赵六,杨七',',',help_topic_id + 1),',' ,- 1) AS Id
    FROM
        mysql.help_topic
    WHERE
        help_topic_id < (length('张三,李四,王五,赵六,杨七') - length(REPLACE ('张三,李四,王五,赵六,杨七', ',', '')) + 1);
    运行结果

     

    解释
    help_topic表

    此处利用 mysql 库的 help_topic 表的 help_topic_id 来作为变量,因为 help_topic_id 是连续自增的,当然也可以用其他表的连续自增字段辅助。

     

    (如果不用这个表,自己可以建立一个表,id设置成自增的)

    涉及函数

    • 字符串拆分: SUBSTRING_INDEX(str, delim, count)
    参数 解释
    str 需要拆分的字符串
    delim 分隔符,通过某字符进行拆分
    count 当 count 为正数,取第 n 个分隔符之前的所有字符; 当 count 为负数,取倒数第 n 个分隔符之后的所有字符。
    • 替换函数:replace( str, from_str, to_str)
    参数 解释
    str 需要进行替换的字符串
    from_str 需要被替换的字符串
    to_str 需要替换的字符串
    • 获取字符串长度:LENGTH( str )
    参数 解释
    str 需要计算长度的字符串
    遇到的问题

    sql执行报错:SELECT command denied to user '###' for table 'help_topic'
    SELECT命令拒绝用户 '###‘用于表’help_topic’

    原因
    mysql用户没有执行查询help_topic表的权限,需要root用户授权。
    解决
    用mysql的root账户执行 GRANT SELECT ON mysql.help_topic TO 'wp'@'localhost'(给用户授予mysql.help_topic的查询权限)

    扩展

    创建用户
    方式1: CREATE USER 'wp'@'localhost' IDENTIFIED BY '123456';
    方式2: GRANT USAGE ON *.* TO 'wp'@'localhost' IDENTIFIED BY '132456';

    删除用户
    DROP USER 'wp'@'localhost';

    查询用户
    SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

    用户授权
    GRANT SELECT ON mysql.help_topic TO 'wp'@'localhost'

    取消用户授权
    REVOKE SELECT ON mysql.help_topic FROM 'wp'@'localhost';

    查询用户授权
    SHOW GRANTS FOR 'wp'@'localhost';

    转: https://blog.csdn.net/HELLOMRP/article/details/105270049

  • 相关阅读:
    pythonday06数据类型(四)
    pythonday05数据类型(三)
    pythonday04数据类型(二)
    pythonday03数据类型(一)
    Apollo自动驾驶实践——第0讲:导论
    图论学习:生成树的Matrix-tree定理
    2020杭电多校6 Expectation
    2020牛客暑期多校第九场 B Groundhog and Apple Tree
    图论:二分图最大权匹配KM算法
    第十章 百度Apollo实战
  • 原文地址:https://www.cnblogs.com/fps2tao/p/15330316.html
Copyright © 2011-2022 走看看