0

我有这张桌子叫水果

CREATE TABLE fruits (
  type varchar(10) NOT NULL,
  variety varchar(20) NOT NULL,
  price decimal(5,2) NOT NULL default 0,
  PRIMARY KEY  (type,variety)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

ALTER TABLE fruits ADD FULLTEXT (type, variety);

insert into fruits(type, variety, price) values
('apple',  'gala',       2.79),
('apple',  'fuji',       2.79),
('apple',  'limbertwig', 2.87),
('apple', 'valencia',   0.87),
('orange', 'navel',      9.36),
('pear',   'bradford',   6.05),
('pear',   'bartlett',   2.14),
('cherry', 'bing',       2.55),
('cherry', 'chelan',     6.33);

我正在使用全文搜索进行选择查询。

select *,
    MATCH (type, variety) AGAINST ('apple') as score
from fruits
WHERE MATCH (type, variety) AGAINST ('apple') > 0 AND price <= 2.79
order by score
LIMIT 2 

有了这个结果

type  | variety | price | score 
-------------------------------
apple | gala    |  2.79 | 0.21812663972377777
apple | fuji    |  2.79 | 0.21812663972377777
apple | valencia | 0.87 | 0.21812663972377777

我如何将结果偏移 1 时

  • 第 1 行的搜索分数 = 第 2 行的搜索分数

  • 第 1 行的价格 = 第 2 行的价格

我想从我的查询中返回

type  | variety | price | score 
-------------------------------
apple | fuji    |  2.79 | 0.21812663972377777
apple | valencia | 0.87 | 0.21812663972377777

自从

  • 第 1 行和第 2 行的价格 = 2.79

  • 第 1 行和第 2 行的得分 = 0.21812663972377777

提前感谢任何潜在的帮助

4

0 回答 0