mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
9659c11b6e
The bug is actually a duplicate of the bug 14708. Down-ported the fix for 14708 from 5.0. Merged the test case for bug 14708 from 5.0.
92 lines
3.8 KiB
Text
92 lines
3.8 KiB
Text
drop table if exists t1, t2;
|
|
CREATE TABLE t1 (
|
|
id VARCHAR(255) NOT NULL PRIMARY KEY,
|
|
sujet VARCHAR(255),
|
|
motsclefs TEXT,
|
|
texte MEDIUMTEXT,
|
|
FULLTEXT(sujet, motsclefs, texte)
|
|
);
|
|
INSERT INTO t1 VALUES('123','toto','essai','test');
|
|
INSERT INTO t1 VALUES('456','droit','penal','lawyer');
|
|
INSERT INTO t1 VALUES('789','aaaaa','bbbbb','cccccc');
|
|
CREATE TABLE t2 (
|
|
id VARCHAR(255) NOT NULL,
|
|
author VARCHAR(255) NOT NULL
|
|
);
|
|
INSERT INTO t2 VALUES('123', 'moi');
|
|
INSERT INTO t2 VALUES('123', 'lui');
|
|
INSERT INTO t2 VALUES('456', 'lui');
|
|
select round(match(t1.texte,t1.sujet,t1.motsclefs) against('droit'),5)
|
|
from t1 left join t2 on t2.id=t1.id;
|
|
round(match(t1.texte,t1.sujet,t1.motsclefs) against('droit'),5)
|
|
0.00000
|
|
0.00000
|
|
0.67003
|
|
0.00000
|
|
select match(t1.texte,t1.sujet,t1.motsclefs) against('droit' IN BOOLEAN MODE)
|
|
from t1 left join t2 on t2.id=t1.id;
|
|
match(t1.texte,t1.sujet,t1.motsclefs) against('droit' IN BOOLEAN MODE)
|
|
0
|
|
0
|
|
1
|
|
0
|
|
drop table t1, t2;
|
|
create table t1 (venue_id int(11) default null, venue_text varchar(255) default null, dt datetime default null) engine=myisam;
|
|
insert into t1 (venue_id, venue_text, dt) values (1, 'a1', '2003-05-23 19:30:00'),(null, 'a2', '2003-05-23 19:30:00');
|
|
create table t2 (name varchar(255) not null default '', entity_id int(11) not null auto_increment, primary key (entity_id), fulltext key name (name)) engine=myisam;
|
|
insert into t2 (name, entity_id) values ('aberdeen town hall', 1), ('glasgow royal concert hall', 2), ('queen\'s hall, edinburgh', 3);
|
|
select * from t1 left join t2 on venue_id = entity_id where match(name) against('aberdeen' in boolean mode) and dt = '2003-05-23 19:30:00';
|
|
venue_id venue_text dt name entity_id
|
|
1 a1 2003-05-23 19:30:00 aberdeen town hall 1
|
|
select * from t1 left join t2 on venue_id = entity_id where match(name) against('aberdeen') and dt = '2003-05-23 19:30:00';
|
|
venue_id venue_text dt name entity_id
|
|
1 a1 2003-05-23 19:30:00 aberdeen town hall 1
|
|
select * from t1 left join t2 on (venue_id = entity_id and match(name) against('aberdeen' in boolean mode)) where dt = '2003-05-23 19:30:00';
|
|
venue_id venue_text dt name entity_id
|
|
1 a1 2003-05-23 19:30:00 aberdeen town hall 1
|
|
NULL a2 2003-05-23 19:30:00 NULL NULL
|
|
select * from t1 left join t2 on (venue_id = entity_id and match(name) against('aberdeen')) where dt = '2003-05-23 19:30:00';
|
|
venue_id venue_text dt name entity_id
|
|
1 a1 2003-05-23 19:30:00 aberdeen town hall 1
|
|
NULL a2 2003-05-23 19:30:00 NULL NULL
|
|
drop table t1,t2;
|
|
create table t1 (id int not null primary key, d char(200) not null, e char(200));
|
|
insert into t1 values (1, 'aword', null), (2, 'aword', 'bword'), (3, 'bword', null), (4, 'bword', 'aword'), (5, 'aword and bword', null);
|
|
select * from t1 where match(d, e) against ('+aword +bword' in boolean mode);
|
|
id d e
|
|
2 aword bword
|
|
4 bword aword
|
|
5 aword and bword NULL
|
|
create table t2 (m_id int not null, f char(200), key (m_id));
|
|
insert into t2 values (1, 'bword'), (3, 'aword'), (5, '');
|
|
select * from t1 left join t2 on m_id = id where match(d, e, f) against ('+aword +bword' in boolean mode);
|
|
id d e m_id f
|
|
1 aword NULL 1 bword
|
|
2 aword bword NULL NULL
|
|
3 bword NULL 3 aword
|
|
4 bword aword NULL NULL
|
|
5 aword and bword NULL 5
|
|
drop table t1,t2;
|
|
CREATE TABLE t1 (
|
|
id int(10) NOT NULL auto_increment,
|
|
link int(10) default NULL,
|
|
name mediumtext default NULL,
|
|
PRIMARY KEY (id),
|
|
FULLTEXT (name)
|
|
);
|
|
INSERT INTO t1 VALUES (1, 1, 'string');
|
|
INSERT INTO t1 VALUES (2, 0, 'string');
|
|
CREATE TABLE t2 (
|
|
id int(10) NOT NULL auto_increment,
|
|
name mediumtext default NULL,
|
|
PRIMARY KEY (id),
|
|
FULLTEXT (name)
|
|
);
|
|
INSERT INTO t2 VALUES (1, 'string');
|
|
SELECT t1.*, MATCH(t1.name) AGAINST('string') AS relevance
|
|
FROM t1 LEFT JOIN t2 ON t1.link = t2.id
|
|
WHERE MATCH(t1.name, t2.name) AGAINST('string' IN BOOLEAN MODE);
|
|
id link name relevance
|
|
1 1 string 0
|
|
2 0 string 0
|
|
DROP TABLE t1,t2;
|