【问题标题】:php + mysql, order by name + starting at specific idphp + mysql,按名称排序+从特定id开始
【发布时间】:2010-09-26 11:55:23
【问题描述】:

MySQL:

id | name  |
------------
1  | Joe   |
2  | Craig |
3  | Shawn |
4  | Ryan  |
5  | Seth  |

PHP:

$a = mysql_query("SELECT * FROM table_name ORDER BY name DESC");

我想做的是,我想从 id: 3 开始,所以它应该输出:

3,4,5,1,2

【问题讨论】:

  • 您在标题中以什么方式“按名称排序”?看来您想按 id 订购。

标签: php mysql sql-order-by


【解决方案1】:

您可以在 ORDER BY 中使用表达式:

SELECT id, name
FROM table_name
ORDER BY id < 3, id

结果:

3 肖恩 4 瑞恩 5 赛斯 1乔 2克雷格

我还建议您不要使用SELECT *,而是明确列出列。

【讨论】:

  • +1 - 这是实现相同目标的更简洁的方法!! :-)
【解决方案2】:

编辑:标记是正确的。较早的查询在语法上不正确。 使用虚拟别名应该可以工作!

Select id from
(
    SELECT id FROM table_name 
    WHERE id >= 3 
    ORDER BY id ASC
) X   

UNION

Select * from
(
    SELECT id FROM table_name 
    WHERE id < 3 
    ORDER BY id ASC
) Y

这应该给你 3,4,5,1,2

【讨论】:

    猜你喜欢
    • 2012-01-09
    • 1970-01-01
    • 2021-02-04
    • 2019-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多