当值相等时,使用全文搜索和偏移量的mysql查询

ncecgwcz  于 2021-06-23  发布在  Mysql
关注(0)|答案(0)|浏览(340)

我有一张叫水果的table

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呢
search score on row 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
提前感谢您的帮助

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题