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;