Ani*_*r.C 23 mysql string split
我想创建一个存储过程,它将匹配两个表.我的要求是根据用户传递的列作为输入匹配两个表.
句法:
CREATE PROCEDURE reconcile.matchTables(
IN TAB1 VARCHAR(25),
IN TAB1 VARCHAR(25),
IN COLS1 VARCHAR(250) ,
IN COLS2 VARCHAR(250))
Run Code Online (Sandbox Code Playgroud)
EX:
matchTables('table1', 'table2', 'col1#col2#col3#col4' , 'col2#col13#col1#col8')
Run Code Online (Sandbox Code Playgroud)
现在,存储过程应该像下面那样形成where子句
table1.col1 = table2.col2
and table1.col2 = table2.col13
and table1.col3 = table2.col1
and table1.col4 = table2.col8
Run Code Online (Sandbox Code Playgroud)
MySQL 不包含分割分隔字符串的函数。然而,创建自己的函数非常容易。
\n\n用户定义函数:
\n\nCREATE [AGGREGATE] FUNCTION function_name\nRETURNS {STRING|INTEGER|REAL|DECIMAL}\nRun Code Online (Sandbox Code Playgroud)\n\n功能:
\n\nCREATE FUNCTION SPLIT_STR(\n x VARCHAR(255),\n delim VARCHAR(12),\n pos INT\n)\nRETURNS VARCHAR(255)\nRETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),\n LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),\n delim, '');\nRun Code Online (Sandbox Code Playgroud)\n\n用法:
\n\nSELECT SPLIT_STR(string, delimiter, position)\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
41726 次 |
| 最近记录: |