私はほとんどの部分で問題なく動作しますが、結果が表示される順番が問題になります。私は、検索または最も近いものとの関連性に基づいて注文を表示したいと思います。たとえば、ユーザーはAccessories
を検索することがありますが、結果は以下のように表示され、上部にはAccessories
と表示されるのが理想的です。MySQLの結果を関連性の順に並べ替えます(一致しません)
ユーザーはExhaust Accessories
を検索することもできますが、現在のIDのように表示されるのではなく、結果の上部にも表示されるのが理想的です。
私はmatch
とagainst
を使ってみましたが、私の限られたMySQLの知識では正しく動作しないようです。 Accessories
Exhaust Accessories
Accessories
Centre Stand Accessories
Rear Stand Accessories
Side Stand Accessories
を検索するときに
クエリ結果コードIは
$arr = explode(' ','Accessories');
$str = '';
$i = 1;
$arrCount = count($arr);
foreach($arr as $v){
if($arrCount > 1 && $i == 1) { $str.= '('; }
$str.= 'wpmj8c_terms.name LIKE "%'.$v.'%" ';
if($arrCount > 1 && $arrCount == $i) { $str.= ')'; } elseif($arrCount > 1 && $arrCount != $i) { $str .= " OR " ;}
$i++;
}
$cat = $wpdb->get_results("SELECT *
FROM wpmj8c_term_relationships
LEFT JOIN wpmj8c_term_taxonomy
ON (wpmj8c_term_relationships.term_taxonomy_id = wpmj8c_term_taxonomy.term_taxonomy_id)
LEFT JOIN wpmj8c_terms on wpmj8c_term_taxonomy.term_taxonomy_id = wpmj8c_terms.term_id
WHERE wpmj8c_term_taxonomy.taxonomy = 'product_cat' AND $str
GROUP BY wpmj8c_term_taxonomy.term_id");
以前の質問との違いは何ですか? –
[MySQLで最も近いものが最初に表示されます]の複製があります(http://stackoverflow.com/questions/42511277/mysql-show-closest-match-first) –
有用な回答が得られていないことを意味しますか? –