mysql存储过程中如何拆分字符串
create or replace function FN_SPLIT_STR_2(var_str in varchar2)return varchar2
/*
有一张表 t1,里面有个字段叫c3,存的是所有店铺的点位信息。
现在需要一个存储过程,将所有的记录的c3字段的坐标值都缩小3倍,写入c字段
内容举例为 220.25 257,220.25 269.75,229.25 269.75,229.25 257
每个逗号分开的是一个个的坐标点,每个坐标点用空格区分x坐标和y坐标
存储函数名称:FN_SPLIT_STR_2
用途:把bis_store坐标v_coords3缩小三倍更新coords,比如
author:huangshan
mysql分组如何将一个字段拆分多个
在MySQL中,如果你想要将一个字段拆分为多个字段,你可以使用SUBSTRING_INDEX()函数。这个函数可以用于从一个字符串中提取子字符串,并根据指定的分隔符进行拆分。
以下是使用SUBSTRING_INDEX()函数将一个字段拆分为多个字段的示例:
sql
SELECT
SUBSTRING_INDEX(column_name, delimiter, 1) AS field1,
SUBSTRING_INDEX(SUBSTRING_INDEX(column_name, delimiter, 2), delimiter, -1) AS field2,
SUBSTRING_INDEX(SUBSTRING_INDEX(column_name, delimiter, 3), delimiter, -1) AS field3
FROM
your_table;
在上述示例中,你需要将column_name替换为你要拆分的字段名,delimiter替换为用于拆分的分隔符。通过调整SUBSTRING_INDEX()函数的参数,你可以根据需要拆分更多的字段。
请注意,这种方法适用于字段中的值以相同的分隔符进行拆分的情况。如果字段中的值存在不同的分隔符或者更复杂的拆分要求,可能需要使用更复杂的方法或者进行预处理。
如何从mysql的备份sql文本里按CREATE TABLE标记来分割成小sql文件
这个解析不好弄,其实可以换一种思路,把所有的表名全查出来,然后在按表名生成导出脚本,生成的文件就一个表一个了。
shell样例如下,仅供参考,请在自己测试环境下测试。脚本可以包装在一个大的shell里面一起执行。
一、生成所有的表名
mysql<<EOF
use cpai;
show tables;
quit
EOF
输入结果保持到tmp.txt
二、生成导出单个表数据的脚本
awk 'NR>1' tmp.txt >tables.txt #从第二行开始取
cat tables.txt |awk '{printf "mysqldump 数据库名 %s >%s.sql\n",$1,$1}' >mysql_dump_sig.sh
三、执行mysql_dump_sig.sh脚本,既可以导出一个个表到单独的每个文件里面。