2012-07-31 85 views
0

可能重複:
How to get First and Last record from a sql query?字母順序獲得第一和最後一個字

我在MySQL數據庫按字母順序排序的話。我怎樣才能得到字母表中每個字母的第一個和最後一個單詞。

所以我們說,有在分貝以下的話:

空氣 飛機 擅離職守 各地

我要連接的字母(第一和最後一句話所以在這種情況下,空氣周圍)。我想要得到以字母順序排列的特定字母開頭的單詞。

+0

或http://stackoverflow.com/a/4899070/1177083 – 4ndro1d 2012-07-31 16:41:51

+0

您的示例與您想要完成的操作不符。在你的例子中,它應該是「空氣」。 – Palladium 2012-07-31 16:48:25

回答

0

嘗試

select min(name) 
from your_table 
group by substring(name, 1, 1) 
0
$str = "air airplane awol around"; 

    $exp = explode(' ', $str); 

    $count = count($exp); // counting no. of items in array 
    $count = $count--;  // reducing count by 1 because index starts from 0 
    $first = $exp[0];  // storing first word 
    $last = $exp[$count]; // storing last word 

    echo $first." - ".$last; 
+1

+1或者只是'$ lastword = $ exp [count($ exp)-1];' – Wh1T3h4Ck5 2012-07-31 16:45:40

+0

你也會這樣做......只是想讓它更容易理解 – asprin 2012-07-31 16:46:22

+1

提問者沒有把它作爲一個字符串,那些是數據庫值。 。 。看起來他應該執行SQL查詢以獲取第一個和最後一個,並使用WHERE + LIKE子句來限制第一個字母,例如WHERE field like'A%' – ernie 2012-07-31 16:52:42

1

這是卓有成效的和非排序的數據工作爲好,儘量

SELECT CONCAT(MIN(word),' - ',MAX(word)) 
FROM table 
GROUP BY ASCII(LOWER(word)) 

它基本上取每個字母的按字母順序排列第一和最後一個實例,連接它們。 ASCII(word)只是爲一個單詞的最左邊的字母獲得一個ASCII算術值,所以本質上它是按照單詞或句子的每個第一個字母(或數字或符號)分組,並輸出一個很好的「百科全書」像列表。

+0

通過將分組更改爲LOWER()進行輕微編輯,這樣返回的列表不會爲小寫字母和大寫首字母返回單獨的行。 – gts 2012-07-31 17:40:42

相關問題