2012-07-31 84 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

相关问题