gpt4 book ai didi

mysql - replace() concat() 和 substr() 在字符串中的特定位置添加字符无法获得正确的位置

转载 作者:行者123 更新时间:2023-11-29 04:52:48 31 4
gpt4 key购买 nike

最终结果: 应合并所有 3 个字段(解决 OK),并应将字符“T”添加为合并字符串中的第 5 个字符(不应删除或更改其他字符按顺序)。 (请参阅下面的所有细节)。

我做错了什么?

数据采用以下格式:

data1: AL

数据2: 33 0230S 0440E

data3: SW

这是我当前的 sql:

replace(concat(b.data1,
substr(b.data2, 4, 1),
'T',
substr(b.data2, 1),
b.data3), ' ', '')
AS MergedData

最终输出应如下所示:

AL33T0230S0440ESW

我已经能够将“T”放置在随机位置,但无法将其始终添加为字符串开头的第 5 个字符。

最佳答案

使用:

  • 替换data2(因为这是唯一需要它的字段),然后
  • concat() 将它们全部连接起来,最后
  • insert()插入 T
  • 的函数

(完全不要使用 substr)

insert(concat(data1, replace(data2, ' ', ''), data3), 5, 0, 'T')

这是一个测试:

set @data1 := 'AL', @data2 := '33 0230S 0440E', @data3 := 'SW';

select
insert(concat(@data1, replace(@data2, ' ', ''), @data3), 5, 0, 'T')
as MergedData;

输出:

+-------------------+
| MergedData |
+-------------------+
| AL33T0230S0440ESW |
+-------------------+

关于mysql - replace() concat() 和 substr() 在字符串中的特定位置添加字符无法获得正确的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9763030/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com