我試圖使用MySQL命令排除「excl」,如果它在字符串的開始處找到,並且使用「excl」命令之後發生的事情。如何命令MySQL結果,同時從命令標題中排除字符串
所以它會爲了這樣的:
標題名稱
不含標題B NAME2
標題C名稱
標題d名
但不是:
標題名稱
標題C名稱
標題d名
不含標題B NAME2
我試圖使用MySQL命令排除「excl」,如果它在字符串的開始處找到,並且使用「excl」命令之後發生的事情。如何命令MySQL結果,同時從命令標題中排除字符串
所以它會爲了這樣的:
標題名稱
不含標題B NAME2
標題C名稱
標題d名
但不是:
標題名稱
標題C名稱
標題d名
不含標題B NAME2
你要告訴ORDER
條款,如果字符串與您要查找的文本開始,然後使用該字符串之後,是串。因此,就「ORDER
」過程而言,「不包括標題a」成爲「標題a」。
SELECT title
FROM table_name
ORDER BY
IF (SUBSTRING(LOWER(title), 1, 5) = 'excl ',
SUBSTRING(title, 6),
title
)
編輯:誤讀的問題,我覺得行開始不包括應到最後,所以CASE需要使用substring(),就像在enobrev的答案中一樣。
... ORDER BY CASE WHEN title_column LIKE 'excl%' THEN substring(title, 6) ELSE title_column END
我喜歡這個。很好,很乾淨。我想這兩種解決方案在大型數據集上都很慢。 – enobrev 2011-01-23 12:39:41
這是有道理的,更好的,但它的工作原理,謝謝。我現在可以想到SUBSTRING可能派上用場的其他一些情況。 – Mint 2011-01-23 10:11:48