文字列の先頭に "excl"が含まれていない場合は除外し、結果を注文する場合は "excl" 。注文タイトルから文字列を除外してMySQLの結果を注文する方法
だから、このように注文します:
タイトル名
除くタイトルをB name2の
タイトルCの名前
タイトルD名
しかし、ない:
タイトル名
タイトルCの名前
タイトルD名
除くタイトルB名2
文字列の先頭に "excl"が含まれていない場合は除外し、結果を注文する場合は "excl" 。注文タイトルから文字列を除外してMySQLの結果を注文する方法
だから、このように注文します:
タイトル名
除くタイトルをB name2の
タイトルCの名前
タイトルD名
しかし、ない:
タイトル名
タイトルCの名前
タイトルD名
除くタイトルB名2
あなたは、文字列は、あなたが探しているのテキストで始まる場合、その文字列の後に来る部分文字列を使用することをORDER
句をお伝えしたいと思います。したがって、 "excl title a"はORDER
プロセスに関する限り "title a"になります。
SELECT title
FROM table_name
ORDER BY
IF (SUBSTRING(LOWER(title), 1, 5) = 'excl ',
SUBSTRING(title, 6),
title
)
編集:質問を読み違え、私は除くで始まる行がすべきと思いました最後に行くので、CASEはenobrevの答えのようにsubstring()を使う必要があります。
... ORDER BY CASE WHEN title_column LIKE 'excl%' THEN substring(title, 6) ELSE title_column END
私はこれが好きです。ニースと清潔。大規模なデータセットでは両方のソリューションがかなり遅いと私は想像しています。 – enobrev
これは理にかなっていますが、それはうまく動作します。ありがとうございます。私はSUBSTRINGが今すぐ便利になるかもしれないいくつかの他のケースを考えることができます。 – Mint