查询被缓存

时间:2020-05-07 22:52:09

标签: mysql laravel

大家好,我遇到了一个奇怪的问题,正在寻求帮助。

我使用的是laravel 7,我的一个查询显然正在缓存中,这是我要解释的代码:

这是我的一个控制器中非常简单的方法:

public function chartEstadosVoluntarios(){
    $estados = DB::table("voluntarios")
        ->selectRaw("estado, count(*) as total")
        ->whereNotNull('estado')
        ->groupBy("estado")
        ->get();

    return response()->json($estados,200);
}

如果我在chrome上点击路线,则结果为:

[
  {
    "estado": "Derivado al 147",
    "total": 2
  },
  {
    "estado": "Derivar a mesa de ayuda",
    "total": 7
  },
  {
    "estado": "Pendiente",
    "total": 3
  },
  {
    "estado": "Reasignar Adulto Mayor",
    "total": 50
  },
  {
    "estado": "Resolución logística 24hs",
    "total": 4
  },
  {
    "estado": "Resuelto",
    "total": 119
  }
]

但这是错误的,不是真正的结果,这是MySQL Workbench中相同查询的屏幕:

enter image description here

我在工作台和laravel中使用同一用户。 另一件事是,如果我稍微修改查询,那么我会得到正确的结果,例如:

$estados = DB::table("voluntarios")
    ->selectRaw("estado, count(*) as total, 'test'")//adding 'test' to select
    ->whereNotNull('estado')
    ->groupBy("estado")
    ->get();

然后我再次点击浏览器,结果是:

[
  {
    "estado": "Pendiente",
    "total": 9687,
    "test": "test"
  },
  {
    "estado": "Resuelto",
    "total": 16415,
    "test": "test"
  }
]

如果我返回修改,我会再次得到错误的结果。 所以,我真的不明白发生了什么,任何方向的感激。

编辑,从答案中添加了更多信息:

toSql()方法引发相同的查询(从浏览器粘贴的副本):

"select estado, count(*) as total from `voluntarios` where `estado` is not null group by `estado`";

在select中带有'test'的toSql()方法:

"select estado, count(*) as total, 'test' from `voluntarios` where `estado` is not null group by `estado`"

修补匠的结果相同:

enter image description here

从laravel v7.10.3降级到v7.6.2(我今天运行作曲家更新之前拥有的版本),但是问题仍然存在。

编辑2

发生奇怪的事情,我最近使用系统的另一部分来编辑表“ voluntarios”的“ estado”字段以查看发生了什么,现在查询抛出了正确的结果。就像编辑表格后已将某些内容解锁一样。 会是什么呢?我检查过用户没有未完成的交易。

先谢谢了。

0 个答案:

没有答案