【问题标题】:Paging and selecting rows starting with a letter from a DB分页和选择以数据库中的字母开头的行
【发布时间】:2009-10-08 18:35:47
【问题描述】:

我有一个表格,其中每一行都是一个用户名,并带有相关的投票计数

目标是通过用户名进行分页

所以你可以点击字母 C 并到达 C 的位置

但如果只有 2 个 C,那么你也想显示 18 个 D 或 12 个 D 和 6 个 E

那么我如何找到从哪里开始 查询之类的,从任何限制 XX、20 中选择 我如何找到 C 开始、F 开始等的 XX

基本把第一个字母当作数字,选择前20个。

【问题讨论】:

  • 从答案中可以看出,语法取决于您使用的 DBMS。

标签: sql select


【解决方案1】:

从表中选择 * 其中名称 >= 'C' 按名称排序 限制 20

【讨论】:

  • 嗯,这简直太容易了,我很尴尬
  • 我认为这是错误的。如果有 40 个 C,那么下一页呢?
  • @DVK:您将保存上一页的最后一个并更改 > 值。
【解决方案2】:
SELECT TOP 20 * FROM [Table] WHERE [username] >= 'C' ORDER BY [username]

【讨论】:

    【解决方案3】:

    你总是可以选择前 20 名。

    SELECT Top 20 * FROM Users WHERE Username >= 'C' ORDER BY Username
    

    【讨论】:

      【解决方案4】:

      最好的方法(假设页面转到网络服务器并且页面#N是从网络服务器请求的):

      select bottom 20 from 
       ( select top N*20 *
       from   myTable
       order by username
       ) TOPNPAGES
      

      【讨论】:

        猜你喜欢
        • 2016-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-16
        • 2022-11-04
        • 2021-12-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多