【问题标题】:I have table containing names and I want to show the output sorted alphabetically but I want to show only 2 record of each alphabet我有包含名称的表,我想显示按字母顺序排序的输出,但我只想显示每个字母的 2 条记录
【发布时间】:2016-04-14 09:39:18
【问题描述】:
Table

Id 姓名

1 阿基尔

2 晃

3 阿努杰

4 比亚

5 比娜

6 切图

7 中国

8 奇克纳

9 香娜


输出

Id 姓名

1 阿基尔

2 晃

3 比亚

4 比娜

6 切图

7 中国

【问题讨论】:

标签: mysql sql database


【解决方案1】:

这里是查询。在 Result are more 字段中,但您可以删除它们。他们只是看看查询是如何工作的

SELECT * FROM (
  SELECT
    @nr :=  IF(@old_val = SUBSTRING(t.name,1,1),(@nr +1),1) AS nr,
    @old_val:=SUBSTRING(t.name,1,1) AS tmp,
    t.name FROM mytable t,
    (SELECT @nr:=0, @old_val:='') AS TMP
  ORDER BY NAME
) AS result WHERE nr < 3;

如果它适合你,请告诉我

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多