如何先按ID获取特定行,然后按特定列按字母顺序排序其余行

时间:2019-07-16 08:52:36

标签: mysql sql database

我正在尝试获取一个特定的ID(53),该ID在检索我的数据时排在第一位,然后按字母title的顺序在此之后。我在这里找到了一些答案,但这些都不是我想要的。

当前这是我的查询

SELECT * 
FROM snm_categories 
WHERE parent_id = ".$conn->real_escape_string($getcat['id'])." 
AND published = 1  
ORDER BY CASE WHEN id = 53 THEN 0 ELSE 1 END, id, title

这可以正确显示ID为53的第一个结果,但其余各项未按title按字母顺序排列。我该怎么办?

2 个答案:

答案 0 :(得分:1)

Windows Time Zone Utility

Usage:
TZUTIL </? | /g | /s TimeZoneID[_dstoff] | /l>

Parameters:
    /? Displays usage information.

    /g Displays the current time zone ID.

    /s TimeZoneID[_dstoff]
       Sets the current time zone using the specified time zone ID.
       The _dstoff suffix disables Daylight Saving Time adjustments
       for the time zone (where applicable).

    /l Lists all valid time zone IDs and display names. The output will
       be: 
           <display name>
           <time zone ID>

Examples:
    TZUTIL /g
    TZUTIL /s "Pacific Standard Time"
    TZUTIL /s "Pacific Standard Time_dstoff"

Remarks:
    An exit code of 0 indicates the command completed successfully.

您必须更改字段的顺序。您首先在id列之前编写title列。这很重要。

答案 1 :(得分:1)

MySQL将布尔值视为数字,其中“ 1”为true,“ 0”为false。

因此,您可以将逻辑简化为:

ORDER BY (id = 53) DESC, title, id