gpt4 book ai didi

mysql - 从字段中提取一些字符

转载 作者:行者123 更新时间:2023-11-29 22:30:30 24 4
gpt4 key购买 nike

例如,我有这个字段:

Pb de HSPA Rab setup sur SFX4149F11 depuis 18/11

我的目标是获取“sur”后面的三个字符。我尝试过这个功能。但在结果中它显示为空。

delimiter |
CREATE FUNCTION METTRE(s VARCHAR(2000)) RETURNS varchar(2000)
DETERMINISTIC
BEGIN
DECLARE open INT;
DECLARE close INT;
DECLARE someLimit INT;
DECLARE str VARCHAR(2000);
DECLARE toFind VARCHAR(2000);
DECLARE nom VARCHAR(20000);
SET open = 1;
SET close = 1;
SET toFind = s ;
SET someLimit = 100;
SET str ='';
WHILE close > 0 and open > 0 and someLimit > 0 DO
SET someLimit = someLimit -1;
SET open = locate('sur',toFind);
IF open > 0 THEN
SET toFind = SUBSTRING(toFind,open);
SET close = locate(4,toFind);
IF close > 2 THEN
SET nom=SUBSTRING(toFind,2,close-2);
SET toFind = SUBSTRING(toFind,close);
END IF;
END IF;
END WHILE;
return SUBSTRING(str,2);

END |
delimiter;

谢谢。

最佳答案

如果您总是在 sur 之后查找 3 个字符,并且后面有空格,则可以更轻松地完成,如下所示

mysql> 
select
substring(
trim(
substring_index(
'Pb de HSPA Rab setup sur SFX4149F11 depuis 18/11','sur ',-1
)
),
1,3) as n;
+-----+
| n |
+-----+
| SFX |
+-----+

在上面只需将硬编码数据替换为表中的column_name

select 
substring(
trim(
substring_index(
yor_col_name,'sur ',-1
)
),
1,3) as n

从评论看来,您正在尝试更新同一个表中的其他列,因此这里是一个示例,说明如何执行此操作

mysql> select * from test ;
+--------------------------------------------------+-------------+
| val | Affected_CI |
+--------------------------------------------------+-------------+
| Pb de HSPA Rab setup sur SFX4149F11 depuis 18/11 | NULL |
| Pb de HSPA Rab setup sur LJK4149F11 depuis 18/11 | NULL |
| Pb de HSPA Rab setup sur MSP4149F11 depuis 18/11 | NULL |
+--------------------------------------------------+-------------+


mysql> update test set Affected_CI = substring(trim(substring_index(val,'sur ',-1)),1,3) ;
Query OK, 2 rows affected (0.04 sec)
Rows matched: 3 Changed: 2 Warnings: 0

mysql> select * from test ;
+--------------------------------------------------+-------------+
| val | Affected_CI |
+--------------------------------------------------+-------------+
| Pb de HSPA Rab setup sur SFX4149F11 depuis 18/11 | SFX |
| Pb de HSPA Rab setup sur LJK4149F11 depuis 18/11 | LJK |
| Pb de HSPA Rab setup sur MSP4149F11 depuis 18/11 | MSP |
+--------------------------------------------------+-------------+

关于mysql - 从字段中提取一些字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29843439/

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