func_regexp.result 3.59 KB
Newer Older
unknown's avatar
unknown committed
1
drop table if exists t1;
2 3 4 5 6 7 8 9 10
set names latin1;
drop table if exists t1;
create table t1 as
select repeat(' ', 64) as s1, repeat(' ',64) as s2
union
select null, null;
show create table t1;
Table	Create Table
t1	CREATE TABLE `t1` (
unknown's avatar
unknown committed
11 12
  `s1` varchar(64) DEFAULT NULL,
  `s2` varchar(64) DEFAULT NULL
13 14
) ENGINE=MyISAM DEFAULT CHARSET=latin1
delete from t1;
unknown's avatar
unknown committed
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
insert into t1 values('aaa','aaa');
insert into t1 values('aaa|qqq','qqq');
insert into t1 values('gheis','^[^a-dXYZ]+$');
insert into t1 values('aab','^aa?b');
insert into t1 values('Baaan','^Ba*n');
insert into t1 values('aaa','qqq|aaa');
insert into t1 values('qqq','qqq|aaa');
insert into t1 values('bbb','qqq|aaa');
insert into t1 values('bbb','qqq');
insert into t1 values('aaa','aba');
insert into t1 values(null,'abc');
insert into t1 values('def',null);
insert into t1 values(null,null);
insert into t1 values('ghi','ghi[');
select HIGH_PRIORITY s1 regexp s2 from t1;
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
s1 regexp s2
1
1
1
1
1
1
1
0
0
0
NULL
NULL
NULL
NULL
unknown's avatar
unknown committed
45 46 47 48
drop table t1;
create table t1 (xxx char(128));
insert into t1 (xxx) values('this is a test of some long text to see what happens');
select * from t1 where xxx regexp('is a test of some long text to');
49 50
xxx
this is a test of some long text to see what happens
51
explain extended select * from t1 where xxx regexp('is a test of some long text to');
52 53
id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
1	SIMPLE	t1	system	NULL	NULL	NULL	NULL	1	100.00	
54
Warnings:
55
Note	1003	select 'this is a test of some long text to see what happens' AS `xxx` from `test`.`t1` where ('this is a test of some long text to see what happens' regexp _latin1'is a test of some long text to')
unknown's avatar
unknown committed
56
select * from t1 where xxx regexp('is a test of some long text to ');
57 58
xxx
this is a test of some long text to see what happens
unknown's avatar
unknown committed
59
select * from t1 where xxx regexp('is a test of some long text to s');
60 61
xxx
this is a test of some long text to see what happens
unknown's avatar
unknown committed
62
select * from t1 where xxx regexp('is a test of some long text to se');
63 64
xxx
this is a test of some long text to see what happens
unknown's avatar
unknown committed
65 66 67 68
drop table t1;
create table t1 (xxx char(128));
insert into t1 (xxx) values('this is some text: to test - out.reg exp (22/45)');
select * from t1 where xxx REGEXP '^this is some text: to test - out\\.reg exp [[(][0-9]+[/\\][0-9]+[])][ ]*$';
69 70
xxx
this is some text: to test - out.reg exp (22/45)
unknown's avatar
unknown committed
71
drop table t1;
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
select _latin1 0xFF regexp _latin1 '[[:lower:]]' COLLATE latin1_bin;
_latin1 0xFF regexp _latin1 '[[:lower:]]' COLLATE latin1_bin
1
select _koi8r  0xFF regexp _koi8r  '[[:lower:]]' COLLATE koi8r_bin;
_koi8r  0xFF regexp _koi8r  '[[:lower:]]' COLLATE koi8r_bin
0
select _latin1 0xFF regexp _latin1 '[[:upper:]]' COLLATE latin1_bin;
_latin1 0xFF regexp _latin1 '[[:upper:]]' COLLATE latin1_bin
0
select _koi8r  0xFF regexp _koi8r  '[[:upper:]]' COLLATE koi8r_bin;
_koi8r  0xFF regexp _koi8r  '[[:upper:]]' COLLATE koi8r_bin
1
select _latin1 0xF7 regexp _latin1 '[[:alpha:]]';
_latin1 0xF7 regexp _latin1 '[[:alpha:]]'
0
select _koi8r  0xF7 regexp _koi8r  '[[:alpha:]]';
_koi8r  0xF7 regexp _koi8r  '[[:alpha:]]'
1
select _latin1'a' regexp _latin1'A' collate latin1_general_ci;
_latin1'a' regexp _latin1'A' collate latin1_general_ci
1
select _latin1'a' regexp _latin1'A' collate latin1_bin;
_latin1'a' regexp _latin1'A' collate latin1_bin
0
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
create table t1 (a varchar(40));
insert into t1 values ('C1'),('C2'),('R1'),('C3'),('R2'),('R3');
prepare stmt1 from 'select a from t1 where a rlike ? order by a';
set @a="^C.*";
execute stmt1 using @a;
a
C1
C2
C3
set @a="^R.*";
execute stmt1 using @a;
a
R1
R2
R3
deallocate prepare stmt1;
drop table t1;
113 114 115 116 117
End of 4.1 tests
SELECT 1 REGEXP NULL;
1 REGEXP NULL
NULL
End of 5.0 tests