github.com/matrixorigin/matrixone@v0.7.0/test/distributed/cases/function/func_string_replace.test (about) 1 -- @suit 2 -- @case 3 -- @desc:test for REPLACE() function 4 -- @label:bvt 5 6 select replace("XYZ FGH XYZ","X","M"); 7 8 select replace(".*.*.*",".*","1"); 9 10 select replace("11","","1"); 11 12 drop table if exists t1; 13 create table t1(a varchar,b varchar); 14 insert into t1 values("testtest","case case"); 15 16 select a,replace(b,"case","11") from t1; 17 18 select replace(a,"test","22") from t1; 19 20 select replace(a,"test",22),replace(b,"case","11") from t1; 21 22 23 -- character 24 SELECT REPLACE('aaaa','a','b'); 25 SELECT REPLACE('aaaa','aa','b'); 26 SELECT REPLACE('aaaa','a','bb'); 27 SELECT REPLACE('aaaa','','b'); 28 SELECT REPLACE('bbbb','a','c'); 29 SELECT REPLACE(' hhdjs','','C'); 30 SELECT REPLACE('absdefg','b',' '); 31 SELECT REPLACE('rhjewnjfnkljvmkrewrjj','j',''); 32 SELECT REPLACE('http://www.google.com.cn/','/',''); 33 SELECT REPLACE('aaa.mysql.com','a','w'); 34 SELECT REPLACE('abchfjwabcABCvshfjdrvoiewjvkmdns mndsabcAbcueiuiwqjemkvwme000','abc','def'); 35 SELECT REPLACE('dhnnnnjjkwkmoHskdhwjnejwqeHsk382983ndjhsemcsHskuwin mndsHsk','Hsk','t12vdjeke'); 36 SELECT REPLACE('jewTWUHWJWwwwwww', 'w', 'Q'); 37 SELECT REPLACE(' woshincjwne hjw ',' ','C'); 38 SELECT REPLACE(' 2617hejwnc 3920kdsm 3289uj ',' ','ssh'); 39 40 41 -- number 42 SELECT REPLACE(123456,6,1); 43 SELECT REPLACE(NULL,'', ''); 44 SELECT REPLACE('', NULL, 3); 45 SELECT REPLACE(378273,2,NULL); 46 47 48 -- Chinese 49 SELECT REPLACE('我是谁我在哪里', '我', '你'); 50 SELECT REPLACE('老师说我是好孩子', '你', '我'); 51 SELECT REPLACE(NULL, '哈', '哈'); 52 SELECT REPLACE('我是老大', '', ''); 53 SELECT REPLACE('你好,见到你很高兴',NULL,'你'); 54 SELECT REPLACE('哈哈哈哈哈', '哈', NULL); 55 SELECT REPLACE('今天是个好日子,明天也是个好日子,后天也是个好日子,大后天也是个好日子','后天','前天'); 56 SELECT REPLACE(' 老师说明天带我们去春游,后天带我们去植树 ,五一带我们去博物馆参观 ',' ','Alice'); 57 SELECT REPLACE(' abc老师说我们班的语文成绩是全年级第1数学成绩是全年级第2', '全年级', '金台区'); 58 59 60 -- null 61 SELECT REPLACE( 'a', 'b', NULL ); 62 SELECT REPLACE( 'a', '', NULL ); 63 SELECT REPLACE('','',NULL); 64 SELECT REPLACE( NULL, 'b', 'bravo' ); 65 SELECT REPLACE( NULL, '', 'bravo' ); 66 SELECT REPLACE( 'a', NULL, 'bravo' ); 67 SELECT REPLACE( NULL, NULL, 'bravo' ); 68 69 70 -- Special characters 71 SELECT REPLACE('37829((&^&8', '(', ')'); 72 SELECT REPLACE('dnu2@#$%^&(*()____**&^%', '*', ''); 73 SELECT REPLACE('7j^$&**JWI*@(@', '@', '@@@@@@') 74 SELECT REPLACE(NULL, 'a', '37*&'); 75 SELECT REPLACE('45e&^%$', NULL, 'abc'); 76 SELECT REPLACE('782hfe4nijned,.,/.', '78', NULL); 77 SELECT REPLACE(NULL, NULL,'') / 2; 78 79 80 -- @suite 81 -- @setup 82 DROP TABLE IF EXISTS replace_01; 83 CREATE TABLE replace_01( 84 s_id int(20) NOT NULL AUTO_INCREMENT, 85 s_name CHAR(5) DEFAULT NULL COMMENT '姓名', 86 phone VARCHAR(11) DEFAULT NULL COMMENT '电话', 87 PRIMARY KEY (s_id) 88 ); 89 90 INSERT INTO replace_01 VALUES (1, 'Tom', '13603735566'); 91 INSERT INTO replace_01 VALUES (2, 'Lee', '13603735533'); 92 INSERT INTO replace_01 VALUES (3, 'Harry', '13603735544'); 93 INSERT INTO replace_01 VALUES (4, 'Odin', '13603735577'); 94 INSERT INTO replace_01 VALUES (5, 'Jack', '13603735587'); 95 96 SELECT s_id, s_name, REPLACE(phone,'136','158') FROM replace_01; 97 SELECT * FROM replace_01 WHERE REPLACE(s_name, 'Tom', 'Bob') = 'Bob'; 98 SELECT REPLACE(s_name,'a','ahfjse') FROM replace_01; 99 SELECT s_id, s_name FROM replace_01 WHERE s_name = REPLACE('s_name','Jack','Bob'); 100 SELECT REPLACE(phone, '136', NULL) FROM replace_01; 101 SELECT REPLACE(NULL, 'q','p') FROM replace_01; 102 SELECT REPLACE(s_name,'Tom','newqjndwdewmwve')FROM replace_01; 103 SELECT REPLACE(s_name, s_name, 'zhang') FROM replace_01; 104 105 106 -- Abnormal test:The length after replacement exceeds the original defined size 107 INSERT INTO replace_01 VALUES(6, 'HHANjdncd','445478855'); 108 INSERT INTO replace_01 VALUES(7, 'Wl', '11111124841550'); 109 UPDATE replace_01 set s_name = REPLACE(s_name,'Tom','efjhhoiwuwnvnjwiewori'); 110 111 112 -- like, not like 113 SELECT s_name, phone FROM replace_01 WHERE REPLACE(s_name, 'Tom', 'Bo') LIKE 'B%'; 114 SELECT * FROM replace_01 WHERE REPLACE(s_name, 'Tom', 'Bo') NOT LIKE 'B%'; 115 116 117 -- between and, not between and 118 SELECT s_id, s_name FROM replace_01 WHERE REPLACE(s_id, 1, 6) BETWEEN 4 AND 7; 119 SELECT * FROM replace_01 WHERE REPLACE(s_id, 2, 8) NOT BETWEEN 3 AND 6; 120 121 122 -- is null, is not null 123 SELECT * FROM replace_01 WHERE REPLACE('s_name','Lee',NULL) IS NULL; 124 SELECT * FROM replace_01 WHERE REPLACE('s_name','Lee','Vicky') IS NOT NULL; 125 126 -- >,<,>=,<=,!= 127 SELECT * FROM replace_01 WHERE REPLACE(s_id, 1, 10) <4; 128 SELECT s_id, s_name FROM replace_01 WHERE REPLACE(s_id, 2, 9) > 2; 129 SELECT * FROM replace_01 WHERE REPLACE(s_id, 5, 9) >=5; 130 SELECT s_id, s_name FROM replace_01 WHERE REPLACE(s_id, 2, 9) != 6; 131 SELECT * FROM replace_01 WHERE REPLACE(s_id, 5, 9) <=5; 132 133 134 -- @suite 135 -- @setup 136 DROP TABLE IF EXISTS replace_02; 137 CREATE TABLE replace_02( 138 id int, 139 name VARCHAR(10), 140 password varchar(32), 141 mm bigint, 142 PRIMARY KEY(id) 143 ); 144 145 INSERT INTO replace_02 VALUES(1, ' 张三', '3672*(*^&hu32', 100); 146 INSERT INTO replace_02 VALUES(2, '李四 ', '4545dwjkekwe&&&&', 200); 147 INSERT INTO replace_02 VALUES(3, ' 王五 ', '&&%$%^&^*()))', 300); 148 INSERT INTO replace_02 VALUES(4, '赵六', 'ewu8qu39821dijoq', 400); 149 INSERT INTO replace_02 VALUES(5, '钱七', '--2102-9328', 500); 150 INSERT INTO replace_02 VALUES(6, ' ', ' ', 900); 151 152 153 -- data update 154 UPDATE replace_02 set name = REPLACE(name,'张三','大哥'); 155 UPDATE replace_02 set password = REPLACE(password, '&&&&', 'AAAA'), name = REPLACE(name,'李四','小栗子'); 156 SELECT REPLACE(mm,mm,600) FROM replace_02; 157 158 159 -- cases:String 160 SELECT REPLACE(ltrim(name), '张三', '三张') FROM replace_02; 161 SELECT REPLACE(rtrim(name), '李', '栗') FROM replace_02; 162 SELECT LENGTH(REPLACE(password, 'a', 'b')) FROM replace_02; 163 SELECT ltrim(REPLACE('nhfej', 'fe', ' fe')); 164 SELECT rtrim(REPLACE('ejdwj 3782 ', '37', '2222')); 165 SELECT find_in_set('b',(REPLACE('a,b,c','a','b'))); 166 SELECT substring(REPLACE(name,'钱七','钱八'),0) FROM replace_02; 167 SELECT bin(REPLACE(id,1,4)) FROM replace_02; 168 SELECT hex(REPLACE(id, 2, 8)) FROM replace_02; 169 SELECT RPAD(REPLACE(password,'a','b'),40,'+-') FROM replace_02; 170 SELECT REPLACE(id, 2, 10) AS newid FROM replace_02 ORDER BY newid DESC; 171 172 173 -- @suite 174 -- @setup 175 -- date function 176 DROP TABLE IF EXISTS replace_04; 177 CREATE TABLE replace_04( 178 id INT, 179 dd1 DATE, 180 dd2 DATETIME NOT NULL, 181 dd3 TIMESTAMP, 182 PRIMARY KEY (id) 183 ); 184 185 INSERT INTO replace_04 VALUES (1, '2020-01-01', '2020-01-01 12:12:12', '2020-02-02 06:06:06.163'); 186 INSERT INTO replace_04 VALUES (2, '2021-11-11', '2021-01-11 23:23:23', '2021-12-12 16:16:16.843'); 187 INSERT INTO replace_04 VALUES (3, '2002-11-11', '2002-01-11 23:23:23', '2002-12-12 16:16:16.843'); 188 INSERT INTO replace_04 VALUES (4, '2023-01-04', '1998-01-09 11:10:56', NULL); 189 190 191 -- date function cases 192 SELECT * FROM replace_04 WHERE REPLACE(dd1,'20','21') < '2020-01-01'; 193 SELECT dd3 FROM replace_04 WHERE REPLACE(dd1, '20', '21') > '2020-01-01'; 194 SELECT MONTH(REPLACE(dd1, '20', '21')) FROM replace_04; 195 SELECT year(REPLACE(dd2, 12, 20)) FROM replace_04; 196 SELECT day(REPLACE(dd2, '23:23', '10:10')) , dd3 FROM replace_04; 197 SELECT DATE_FORMAT(REPLACE(dd1, '20', '21'),'%m-%d-%Y') FROM replace_04; 198 SELECT DATE(REPLACE(dd2, 12, 20)) FROM replace_04; 199 SELECT to_date(REPLACE(dd2, '23:23', '10:10'),'%Y-%m-%d %H:%i:%s') FROM replace_04; 200 SELECT weekday(REPLACE(dd2, 12, 20)) FROM replace_04; 201 SELECT dayofyear(REPLACE(dd1, 20, 21)) FROM replace_04; 202 SELECT id, extract(year FROM REPLACE(dd3, 20, 18)) FROM replace_04; 203 SELECT id, extract(MONTH FROM REPLACE(dd3, 20, 18)) FROM replace_04; 204 SELECT UNIX_TIMESTAMP(REPLACE(dd2, '23:23', '10:10')) FROM replace_04;