0

我有这个 MySQL 查询:

SELECT
  id,
  title
FROM song
WHERE text IS NOT NULL
    AND title LIKE "%foo%"
ORDER BY title

什么是在这里调整排序的好方法,以便那些以开头 foo的行总是在那些只包含它的行之前?

换句话说,我希望那些LIKE "foo%"在那些之前LIKE "%foo%",没有重复。

4

1 回答 1

1

您可以尝试以下方法。我在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
于 2013-02-06T20:47:21.153 回答