代码之家  ›  专栏  ›  技术社区  ›  Tak

如何使用sql-in运算符按顺序获取列中的数据

  •  0
  • Tak  · 技术社区  · 6 年前

    有如下所示的数据集;

    enter image description here

    例如,当event_type的输入为4、1、2、3时,我希望按此顺序从cnt_stamp获取3999、3、9。我创建了一个sql代码,如下所示,但它似乎总是返回999、3、9、3,而不管输入的顺序如何。 如何修复SQL以实现此目的?谢谢你抽出时间,如果有任何问题请告诉我。

    SELECT `cnt_stamp` FROM `stm_events` WHERE `event_type` in (4,1,2,3)
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   someRandomSerbianGuy    6 年前

    在查询中添加order by字段(event_type,4,1,2,3)。它应该看起来像:

    SELECT cnt_stamp FROM stm_events WHERE event_type in (4,1,2,3) ORDER BY FIELD(event_type, 4, 1, 2, 3);
    
        2
  •  -1
  •   Adri Aulia Rakhman    6 年前

    它不能,因为默认情况下,数据按升序排序,如果你想要像你想要的那样的结果,最好创建1列用于索引