MySQL では、結果のフィルタリングにも使用される一連のルールの順序で結果を並べ替える方法はありますか?
たとえば、名前フィールドとユーザーからの入力がある場合、次のようにレコードをフィルタリングして並べ替えたいと思います
入力を名前フィールドと照合すると
- 完全に一致
- 名前の入力完全一致の最初のキーワード
- 名前の入力完全一致の 2 番目のキーワード
- 名前は最初のキーワードで始まります
- 名前は 2 番目のキーワードで始まります
上記のケースに基づいて結果をフィルタリングし、上記の順序で並べ替えたいと思います。
入力: 2 つ 3 つ
データ:
| 1 つ |
| | 2 |
| | 3 |
| | 1 2 3 | 1 2 3 |
| | 1 3 2 | 1 3 2 |
| | 3 1 2 |
| | 2 3 1 | 2 3 1 |
出力:
| 2 |
| | 3 |
| | 2 3 1 | 2 3 1 |
| | 3 1 2 |
全文検索は可能な解決策かもしれませんが、私の過去の経験から、上記の方法で正確に並べ替えると、期待される関連性値が常に得られるとは限りません。