【问题标题】:MYSQL - ORDER BY & LIMIT: Different result when using variable or constantMYSQL - ORDER BY 和 LIMIT:使用变量或常量时结果不同
【发布时间】:2014-07-17 08:09:02
【问题描述】:

查询 1:

set @userName = 'harry';

set @previousRegionId = (
        select Region as RegionID
        from log
        where User = @userName
        order by stamp desc
        limit 1);

select @previousRegionId;

查询 2:

set @previousRegionId = (
        select Region as RegionID
        from log
        where User = 'harry'
        order by stamp desc
        limit 1);

select @previousRegionId;

我希望两个查询的结果相同,但结果不同并且它是可重现的

log 表在所有行的 User 列中包含相同的值('harry')。

【问题讨论】:

  • 你能显示两个查询的示例输出吗?

标签: mysql sql-order-by limit


【解决方案1】:

更改了 order by 子句。 按 id 订购“效果更好”。按时间戳列排序是可疑的...

我不能 100% 确定这种方法是否适用于所有场景/方面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-09
    • 2021-07-12
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多