このMySQLクエリがあります:
SELECT
id,
title
FROM song
WHERE text IS NOT NULL
AND title LIKE "%foo%"
ORDER BY title
で始まる foo
行が常にそれを含む行の前に来るように、ここで順序を調整する良い方法は何ですか?
つまり、重複することなく、LIKE "foo%"
それらをそれらの前に配置したいのです。LIKE "%foo%"
次のようなものを試すことができます。SQL Fiddleで試してみたところ、うまくいきました。
SELECT
id,
title
FROM song
WHERE text IS NOT NULL
AND title LIKE "%foo%"
ORDER BY CASE WHEN title LIKE "foo%" THEN 1 ELSE 2 END, title