在SQL中对字符串的所有子字符串执行操作(MariaDB)

hsgswve4  于 2022-11-08  发布在  其他
关注(0)|答案(1)|浏览(172)

免责声明:这不是一个数据库管理或设计问题。我没有设计这个数据库,我没有权利改变它。
我有一个数据库,其中许多字段是复合字段。例如,一个地区的英亩使用情况使用一个列。许多地区有一种主要作物,值是一个数字,如14。有些地区有两种主要作物,它有两个数字,用逗号分隔,如“14,8”。有些地区有三种、四种甚至五种主要作物,产生复合值,如“14,8,”7、4、3英寸。
我正在从这个数据库中提取数据进行分析研究。现在,我正在将这样的列提取到R中,并将它们拆分为5个值(如果没有5个值,则填充空值),并对这些值执行操作。我希望在数据库本身中执行此操作。我希望在逗号上拆分值,对结果值执行操作,然后将操作的结果连接回原始列格式。
例如,我有一个以英亩为单位的列,我希望它以平方米为单位。所以,我想取“14,8”,暂时将其转换为14和8,将它们分别乘以4046.86,得到“56656.04,32374.88”作为我的结果。我目前正在使用regexp_replace。我从所有“英亩REGEXP '^[0-9.]+,[0 -9.]+,[0 -9.]+,[0-9.]+$“”用于where子句。这样,字段中就有5行数字。然后,我可以使用“cast”来处理第一个数字(regexp_replace(acres,',.* %',')as float)* 4046.86”.我可以使用不同得regexp_replace分别执行这5个操作.我可以将这些值重新连接在一起.然后,我运行一个查询,查找包含4个数字得值,然后是3个,然后是2,最后是单个数字行。
这是否可以作为单个查询?

vsikbqxv

vsikbqxv1#

使用函数对字符串进行语法分析并将其转换为所需的结果。这将允许您对作业使用单个查询。

相关问题