2011-01-23 61 views
0

我試圖使用MySQL命令排除「excl」,如果它在字符串的開始處找到,並且使用「excl」命令之後發生的事情。如何命令MySQL結果,同時從命令標題中排除字符串

所以它會爲了這樣的:

標題名稱
不含標題B NAME2
標題C名稱
標題d名

但不是:

標題名稱
標題C名稱
標題d名
不含標題B NAME2

回答

1

你要告訴ORDER條款,如果字符串與您要查找的文本開始,然後使用該字符串之後,是串。因此,就「ORDER」過程而言,「不包括標題a」成爲「標題a」。

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

這是有道理的,更好的,但它的工作原理,謝謝。我現在可以想到SUBSTRING可能派上用場的其他一些情況。 – Mint 2011-01-23 10:11:48

2

編輯:誤讀的問題,我覺得行開始不包括應到最後,所以CASE需要使用substring(),就像在enobrev的答案中一樣。

 
... 
ORDER BY 
    CASE 
     WHEN title_column LIKE 'excl%' THEN substring(title, 6) 
     ELSE title_column 
    END 
+1

我喜歡這個。很好,很乾淨。我想這兩種解決方案在大型數據集上都很慢。 – enobrev 2011-01-23 12:39:41