gpt4 book ai didi

使用存储函数、过程清理 MySQL 数据库

转载 作者:行者123 更新时间:2023-11-29 10:47:20 25 4
gpt4 key购买 nike

我有一张这样的 table

CREATE TABLE `test` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`tel_1` text,
`tel_2` text,
`tel_3` text,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+----+------------------------------------+-----------------------------------------------+-------+
| id | tel_1 | tel_2 | tel_3 |
+----+------------------------------------+-----------------------------------------------+-------+
| 1 | 123-412-3455 | 1276ー364739−181 | NULL |
| 2 | 714-212-3839 Not Using | No Info | NULL |
| 3 | 12+13E | NULL | NULL |
| 4 | 0123ー3432-1233 Ext : 602 | NULL | NULL |
+----+------------------------------------+-----------------------------------------------+-------+

我想像下面这样清理数据:

+----+--------------+------------+---------------+------------+-------+------------+
| id | tel_1 | tel_1_desc | tel_2 | tel_2_desc | tel_3 | tel_3_desc |
+----+--------------+------------+---------------+------------+-------+------------+
| 1 | 1234123455 | NULL | 1276364739181 | NULL | NULL | NULL |
| 2 | 7142123839 | Not Using | NULL | No Info | NULL | NULL |
| 3 | 12+13E | NULL | NULL | NULL | NULL | NULL |
| 4 | 012334321233 | Ext : 602 | NULL | NULL | NULL | NULL |
+----+--------------+------------+---------------+------------+-------+------------+

这是我需要的列表:

  1. 从 tel_X 中删除字符,主要是“-”
  2. 在 tel_X_desc 上留下额外评论
  3. 将非 UTF-8 数字改为正确格式,从 '0123' 到“0123”

我设法为#3创建MySQL存储函数,但是我无法为每个记录循环它并更新......

CREATE FUNCTION `multibyte2cv`(`str` TEXT) RETURNS text CHARSET utf8
BEGIN
DECLARE int_len INT(2);
DECLARE int_z VARCHAR(10) DEFAULT '1234567890';
DECLARE int_h VARCHAR(10) DEFAULT '1234567890';

SET int_len = CHAR_LENGTH(int_z);
WHILE int_len > 0 DO
SET str = REPLACE(str, SUBSTRING(int_z,int_len,1), SUBSTRING(int_h,int_len,1));
SET int_len = int_len - 1;
END WHILE;
RETURN str;
END;

我对数据库领域很陌生,并试图找到可以解决这个问题的东西......

最佳答案

UPDATE查询中调用该函数:

UPDATE test 
SET tel_1 = multibyte2cv(tel_1), tel_2 = multibyte2cv(tel_2), tel_3 = multibyte2cv(tel_3)

关于使用存储函数、过程清理 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44320080/

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