Как ЗАКАЗАТЬ результаты MySQL при исключении строки из названия заказа - PullRequest
0 голосов
/ 23 января 2011

Я пытаюсь использовать MySQL для упорядочения, исключая «excl», если он найден в начале строки, и использую то, что всегда идет после «excl», для упорядочивания результатов.

Так что порядок будет таким:

title a name
excl title b name2
title c name
title d name

Но не:

title a name
title c name
title dимя
исключая название b имя2

Ответы [ 2 ]

2 голосов
/ 23 января 2011

Edit: неправильно прочитал вопрос, я думал, строки, начинающиеся с excl, должны идти до конца, поэтому CASE должен использовать substring (), как в ответе enobrev.

...
ORDER BY 
   CASE 
      WHEN title_column LIKE 'excl%' THEN substring(title, 6)
      ELSE title_column
   END
1 голос
/ 23 января 2011

Вы хотите сказать предложению ORDER, что если строка начинается с искомого текста, то используйте подстроку, которая идет после этой строки. Таким образом, «исключая заголовок а» становится «заголовком а» в отношении процесса ORDER.

SELECT  title
FROM    table_name
ORDER BY
IF (SUBSTRING(LOWER(title), 1, 5) = 'excl ',
    SUBSTRING(title, 6),
    title
)
...