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
