📄 fulltext_order_by.result
字号:
DROP TABLE IF EXISTS t1,t2,t3;CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY,message CHAR(20),FULLTEXT(message)) comment = 'original testcase by sroussey@network54.com';INSERT INTO t1 (message) VALUES ("Testing"),("table"),("testbug"),("steve"),("is"),("cool"),("steve is cool");SELECT a, FORMAT(MATCH (message) AGAINST ('steve'),6) FROM t1 WHERE MATCH (message) AGAINST ('steve');a FORMAT(MATCH (message) AGAINST ('steve'),6)4 0.9058737 0.895690SELECT a, MATCH (message) AGAINST ('steve' IN BOOLEAN MODE) FROM t1 WHERE MATCH (message) AGAINST ('steve');a MATCH (message) AGAINST ('steve' IN BOOLEAN MODE)4 17 1SELECT a, FORMAT(MATCH (message) AGAINST ('steve'),6) FROM t1 WHERE MATCH (message) AGAINST ('steve' IN BOOLEAN MODE);a FORMAT(MATCH (message) AGAINST ('steve'),6)4 0.9058737 0.895690SELECT a, MATCH (message) AGAINST ('steve' IN BOOLEAN MODE) FROM t1 WHERE MATCH (message) AGAINST ('steve' IN BOOLEAN MODE);a MATCH (message) AGAINST ('steve' IN BOOLEAN MODE)4 17 1SELECT a, FORMAT(MATCH (message) AGAINST ('steve'),6) FROM t1 WHERE MATCH (message) AGAINST ('steve') ORDER BY a;a FORMAT(MATCH (message) AGAINST ('steve'),6)4 0.9058737 0.895690SELECT a, MATCH (message) AGAINST ('steve' IN BOOLEAN MODE) FROM t1 WHERE MATCH (message) AGAINST ('steve' IN BOOLEAN MODE) ORDER BY a;a MATCH (message) AGAINST ('steve' IN BOOLEAN MODE)4 17 1SELECT a, FORMAT(MATCH (message) AGAINST ('steve'),6) FROM t1 WHERE a in (2,7,4) and MATCH (message) AGAINST ('steve') ORDER BY a DESC;a FORMAT(MATCH (message) AGAINST ('steve'),6)7 0.8956904 0.905873SELECT a, MATCH (message) AGAINST ('steve' IN BOOLEAN MODE) FROM t1 WHERE a in (2,7,4) and MATCH (message) AGAINST ('steve' IN BOOLEAN MODE) ORDER BY a DESC;a MATCH (message) AGAINST ('steve' IN BOOLEAN MODE)7 14 1SELECT a, FORMAT(MATCH (message) AGAINST ('steve'),6) FROM t1 WHERE a=7 and MATCH (message) AGAINST ('steve') ORDER BY 1;a FORMAT(MATCH (message) AGAINST ('steve'),6)7 0.895690SELECT a, MATCH (message) AGAINST ('steve' IN BOOLEAN MODE) FROM t1 WHERE a=7 and MATCH (message) AGAINST ('steve' IN BOOLEAN MODE) ORDER BY 1;a MATCH (message) AGAINST ('steve' IN BOOLEAN MODE)7 1SELECT a, FORMAT(MATCH (message) AGAINST ('steve'),6) as rel FROM t1 ORDER BY rel;a rel1 0.0000002 0.0000003 0.0000005 0.0000006 0.0000007 0.8956904 0.905873SELECT a, MATCH (message) AGAINST ('steve' IN BOOLEAN MODE) as rel FROM t1 ORDER BY rel;a rel1 02 03 05 06 04 17 1alter table t1 add key m (message);explain SELECT message FROM t1 WHERE MATCH (message) AGAINST ('steve') ORDER BY message;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t1 fulltext message message 0 1 Using where; Using filesortSELECT message FROM t1 WHERE MATCH (message) AGAINST ('steve') ORDER BY message desc;messagesteve is coolstevedrop table t1;CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY,message CHAR(20),FULLTEXT(message));INSERT INTO t1 (message) VALUES ("testbug"),("testbug foobar");SELECT a, MATCH (message) AGAINST ('t* f*' IN BOOLEAN MODE) as rel FROM t1;a rel1 12 2SELECT a, MATCH (message) AGAINST ('t* f*' IN BOOLEAN MODE) as rel FROM t1 ORDER BY rel,a;a rel1 12 2drop table t1;CREATE TABLE t1 (id int(11) NOT NULL auto_increment,thread int(11) NOT NULL default '0',beitrag longtext NOT NULL,PRIMARY KEY (id),KEY thread (thread),FULLTEXT KEY beitrag (beitrag)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7923 ;CREATE TABLE t2 (id int(11) NOT NULL auto_increment,text varchar(100) NOT NULL default '',PRIMARY KEY (id),KEY text (text)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=63 ;CREATE TABLE t3 (id int(11) NOT NULL auto_increment,forum int(11) NOT NULL default '0',betreff varchar(70) NOT NULL default '',PRIMARY KEY (id),KEY forum (forum),FULLTEXT KEY betreff (betreff)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=996 ;select a.text, b.id, b.betrefffrom t2 a inner join t3 b on a.id = b.forum inner joint1 c on b.id = c.threadwhere match(b.betreff) against ('+abc' in boolean mode)group by a.text, b.id, b.betreffunionselect a.text, b.id, b.betrefffrom t2 a inner join t3 b on a.id = b.forum inner joint1 c on b.id = c.threadwhere match(c.beitrag) against ('+abc' in boolean mode)group by a.text, b.id, b.betrefforder by match(b.betreff) against ('+abc' in boolean mode) desc;ERROR 42S22: Unknown column 'b.betreff' in 'order clause'select a.text, b.id, b.betrefffrom t2 a inner join t3 b on a.id = b.forum inner joint1 c on b.id = c.threadwhere match(b.betreff) against ('+abc' in boolean mode)unionselect a.text, b.id, b.betrefffrom t2 a inner join t3 b on a.id = b.forum inner joint1 c on b.id = c.threadwhere match(c.beitrag) against ('+abc' in boolean mode)order by match(b.betreff) against ('+abc' in boolean mode) desc;ERROR 42S22: Unknown column 'b.betreff' in 'order clause'select a.text, b.id, b.betrefffrom t2 a inner join t3 b on a.id = b.forum inner joint1 c on b.id = c.threadwhere match(b.betreff) against ('+abc' in boolean mode)unionselect a.text, b.id, b.betrefffrom t2 a inner join t3 b on a.id = b.forum inner joint1 c on b.id = c.threadwhere match(c.beitrag) against ('+abc' in boolean mode)order by match(betreff) against ('+abc' in boolean mode) desc;text id betreff(select b.id, b.betreff from t3 b) union (select b.id, b.betreff from t3 b) order by match(betreff) against ('+abc' in boolean mode) desc;id betreff(select b.id, b.betreff from t3 b) union (select b.id, b.betreff from t3 b) order by match(betreff) against ('+abc') desc;ERROR HY000: Can't find FULLTEXT index matching the column listselect distinct b.id, b.betreff from t3 b order by match(betreff) against ('+abc' in boolean mode) desc;id betreffselect b.id, b.betreff from t3 b group by b.id+1 order by match(betreff) against ('+abc' in boolean mode) desc;id betreffdrop table t1,t2,t3;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -