私のクエリは3つのテーブルからデータを選択し、結果を 'タイトル'(1つのテーブルには、参照する必要があるカラムとして 'description'があります)として設定します。また、後でフロントエンドフィルタに使用するテーブルがあることを示す値を持つ結果 'doctype'を作成します。これにより、その後の受注:共用体によるサブクエリの数すべて
- 結果が
- 結果はどこか途中 で
- 結果は私が必要なものSEARCHTERM
で終わる検索語がそれぞれのカウントを取得することで含まれてい検索語で始まりますクエリ内のサブクエリ:
SELECT * FROM (
SELECT Title as title, 'docs' AS 'doctype' FROM docs
WHERE status IN ('publish', 'draft', 'review') AND Title LIKE '%' :searchterm '%'
UNION ALL
SELECT Title as title, 'sheets' AS 'doctype' FROM sheets
WHERE status IN ('publish', 'draft', 'review') AND Title LIKE '%' :searchterm '%'
UNION ALL
SELECT Description AS title, 'pres' AS 'doctype' from presentations
WHERE status IN ('publish', 'draft', 'review') AND Description LIKE '%' :searchterm '%'
) FINAL
ORDER BY
CASE
WHEN title LIKE :searchterm '%' THEN 1
WHEN title LIKE '%' :searchterm THEN 3
ELSE 2
END
LIMIT 300
さらに、al ORDER BYのias name( 'title')。
を更新しましたおそらく最悪の方法です^^ – GrumpyCrouton
あなたはmysqlとsql-serverの両方を持つことができません - 無関係なタグを削除してください。 – Eli
ありがとうございます@エリは – DJC