【问题标题】:sql query conditionsql查询条件
【发布时间】:2011-07-01 00:56:41
【问题描述】:

我有一个名为 gst 的表,其中包含

CREATE TABLE gst (
    gst_id INT PRIMARY KEY AUTO_INCREMENT,
    month VARCHAR(9) NOT NULL,
    price INT NOT NULL
);
INSERT INTO gst 
(gst_id,    month, price)
  VALUES
(     7, February,   3),
(    16,  January,   5)
(    17,    April,   7),
(    18,    March,   2),

我想按月份(即一月、二月、三月……)显示结果:

5 月 16 日 2 月 7 日 3 3 月 18 日 2 7 月 17 日

如何编写 sql 查询?

【问题讨论】:

  • 这就是为什么您应该在数据库中存储月份数字而不是月份名称的原因:P

标签: php mysql codeigniter phpmyadmin


【解决方案1】:
... ORDER BY CASE `month`
        WHEN 'January' THEN 1
        WHEN 'Febduary' THEN 2
        ...
     END

或者

ORDER BY FIND_IN_SET(`month`, 'January,February,March,...')

或者

ORDER BY FIELD(`month`, 'January', 'February', ...)

【讨论】:

    【解决方案2】:

    试试这个....

    SELECT DATE_FORMAT(date_col, '%M') as month FROM table ORDER BY month
    

    也试试这个链接...

    Date-Time Functions

    【讨论】:

    • select DATE_FORMAT('January', '%M'); --- 首先尝试执行此操作。 DATE_FORMAT 接受 date 或 datetime 作为参数,而不是月份名称。
    猜你喜欢
    • 1970-01-01
    • 2021-01-16
    • 2019-07-26
    • 2015-05-01
    • 2016-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    相关资源
    最近更新 更多