当前位置: 首页 > 面试题库 >

php mysql asc / desc命令

屠浩
2023-03-14
问题内容

桌子:

**timeslot**:
----------
id_timeslot   times
1             09:00
2             09:30
3             10:00
4             10:30
5             11:00

**bookslot**
id   id_timeslot     date        b_ref
-------------------------------------------
1    2               2010-02-22  001 
2    3               2010-02-22  001
3    4               2010-02-22  001
4    5               2010-02-22  001
5    2               2010-02-25  002
6    3               2010-02-27  003
7    4               2010-02-27  003
8    5               2010-02-27  003

的PHP

$q = $mysqli->query("SELECT * FROM bookslot  
LEFT JOIN timeslot ON bookslot.id_timeslot = timeslot.id_timeslot   
WHERE bookslot.status = 1 
GROUP BY bookslot.b_ref  
ORDER BY bookslot.date ASC, bookslot.id_timeslot ASC LIMIT 20");

HTML结果:

DATE         TIMES  
2010-02-22   10:30
2010-02-25   09:30
2010-02-27   11:00

任何人都注意到桌上的结果。时代是不正确的顺序?
我改变了另一种方式与ASC / DESC,仍然显示最后一个id_timeslot的时间吗?

预期结果:

DATE         TIMES  
2010-02-22   09:30
2010-02-25   09:30
2010-02-27   10:00

问题答案:

GROUP BY bookslot.b_ref正在对记录进行分组,因此每种情况下您只会看到最后一次。

尝试使用

SELECT date, time, MIN(bookslot.id_timeslot)
FROM bookslot  
LEFT JOIN timeslot ON bookslot.id_timeslot = timeslot.id_timeslot   
WHERE bookslot.status = 1 
GROUP BY bookslot.b_ref  
ORDER BY bookslot.date ASC, bookslot.id_timeslot ASC LIMIT 20


 类似资料:
  • 我需要有一个DESC订单,因为我想限制100,所以我得到前100个值。有人能建议一个办法吗...?

  • 问题内容: 我只是想按ID对评论进行排序,但是这样做并不幸运。无法弄清楚该怎么办,因为这使我感到困惑: 你们碰巧知道我如何通过DESC中的ID来订购评论吗?谢谢! 问题答案: 首先,您要进行两次相同的操作。这是不必要的,因为您可以计算行数并从单个查询中获取数据。除此之外,用注释表的唯一ID替换您,即可设置好。替换为以颠倒排序顺序。

  • 我正在使用React视图上的Highcharts。出于可访问性和搜索引擎优化的原因,我想定制标记,但我在文档中找不出如何实现。Highcharts会自动插入一个标记,如下所示: <代码> 有没有办法改变这一点,或者这是硬编码的?

  • 我有一个sql查询 所以我显然想按价格从高到低来订购。然而,它似乎是取第一个数字并按其排序。我的理论是,它将它视为字符串,由于列是varchar,这是有意义的。然而,这是第三方数据,所以我被它卡住了。我怎样才能订购,使较大的数字在前? 这是一个如何排序的例子

  • 问题内容: 我有下表称为问题: 我只想选择每个询问者一次,如果有多个同名提问者,请选择ID最高的一个。因此,预期结果: 我使用以下查询: 我得到以下结果: 因此,它将选择遇到的第一个“鲍勃”,而不是最后一个。 谢谢 问题答案: 如果要为每一个添加最后一个,则应使用聚合函数: 之所以得到不寻常的结果,是因为MySQL使用了一个扩展名,该扩展名允许未选择列表中的项进行汇总,并且不包含在GROUP BY

  • 问题内容: 我需要选择按以下逻辑排序的记录,但是当DESC处于条件条件时,SQLite会引发错误。 这是为了实现Facebook的排序,即按日期降序排列=-原始帖子(始终具有空的parentGUID),并按日期升序答复原始帖子。 问题答案: 如果我理解正确,那么您将需要加入具有父帖子日期的表格。如果可用,则应执行以下操作: 这给出了以下输出: 请注意,如果回复可以依次包含回复,则此操作会中断;您需