通常の MySQL クエリと同様に、1 つのキューで 2 つのクエリを実行し、最初のクエリの結果を他のクエリの IF 式に渡す必要があります。
例として、@average 変数を 2 番目のクエリに渡してみます。
SET @average=(SELECT AVG(weight()) avg_rank FROM common WHERE match('query text') OPTION ranker=expr('sum(word_count)*100 + sum(lcs*user_weight)*100 + bm25 + sum(exact_order)*200');
SELECT *, weight() as rank, 2000 * exp( - 9.594E-5 * abs(1486121357 - _rank_date)/1000) AS date_rank, IF(_importance > @average,_importance,0) AS importance_rank, (rank + date_rank + importance_rank) as total_rank FROM common WHERE match('query text') OPTION ranker=expr('sum(word_count)*100 + sum(lcs*user_weight)*100 + bm25 + sum(exact_order)*200')
しかし、解析エラーが発生しました。どうすればできますか?