2017-07-30 4 views
0

私のテーブルには「日付」と「説明」という2つの列がありますが、「説明」の単語と日付の順番が減少する行の結果が必要です。私はfullindexを追加し、SQLの下に実行し、最初の「alter table order by date decreasing」を実行します。mysql 5.6のinnodbテーブルのFTSの注文タイプを改訂

SELECT date FROM articles WHERE MATCH (description) AGAINST ('+"big" +"light"' IN BOOLEAN MODE); 

テーブルがMyISAMのであれば、結果は「日付」によるため減少しているが、テーブルがInnoDBのであれば、結果は自動的にの関連性が低い順に並べ替えます

私はInnoDBテーブルを使用し、結果の順序を関連性を減らす代わりに自動的に "日付"で減少させたいのですが、どうすればいいですか?

プラス:SQLに「order by date desc」というコードを追加することはできますが、テーブルの値が多すぎるために時間がかかります。

ありがとうございます。

トミー

+0

「alter table order by」は、MyISAMの「機能」です。 InnoDBでは動作しません。同様のことを得る唯一の方法は、主キーで 'date'を使うことです。私はそれを示唆するものではありません。あるいは、他の人がそれをやるようにして、あなたのクエリに 'order by 'を追加します。速度を比較する際には、テーブルへの変更(例えば挿入)が行われるたびにオーダーが破棄される可能性があるので、オーダーが有効であることを確認するためにクエリを実行するたびに 'alter table'を実行する必要があります。したがって、実行時間を比較するときには、 'alter table order by 'を含める必要があります。 – Solarflare

答えて

0

あなたには、いくつかの方法で注文した結果をしたい場合は、あなたORDER BY句を追加する必要があります。デフォルトのアクションに依存すると、行を削除または更新するとすぐに燃え尽きます。

これについてさらに検討する必要がある場合は、クエリ全体とSHOW CREATE TABLEを入力してください。

関連する問題