小编dbr*_*dbr的帖子

使用四个表连接的mysql select/delete

我有四个表(在[]列中):

users [id]

products [id]

productRatings [id,value,user,product]

comments [id,product,user]

我想选择/并最终删除productRatings,其中该产品的同一用户没有相关评论.也就是说,如果用户对产品进行了评级但未评论,则应删除该评级.

我相信我可以通过使用两个查询来实现这一点,首先:

SELECT user, product FROM productRatings
Run Code Online (Sandbox Code Playgroud)

然后为每一行:

    SELECT COUNT(*) FROM comments WHERE product=productRatings.product AND user=productRatings.user
Run Code Online (Sandbox Code Playgroud)

然后像

    if $queryAbove==0 : DELETE FROM productRatings WHERE id=productRatings.id
Run Code Online (Sandbox Code Playgroud)

我想通过JOIN解决这个问题,并通过示例了解更多信息,而不是通过JOIN教程.

php mysql join multiple-tables

7
推荐指数
1
解决办法
85
查看次数

Laravel Carbon本地化不起作用(从数字获取本地化的月份名称)

使用Laravel 5.3,

在我的方法中我使用

setlocale(LC_TIME, 'hr-HR');
dd(Carbon::now()->formatLocalized('%A'));
Run Code Online (Sandbox Code Playgroud)

但我得到了Sunday而不是CroatianWordForSunday.

我尝试使用Carbon::setLocale('hr'),而不是setlocale(),但我仍然得到Sunday.

在我的config/app.php文件中,我已设置'locale' => 'hr'.

需要注意的是,diffForHumans()如果我使用Carbon的方法已成功翻译Carbon::setLocale('hr').

最后,我要做的就是将8号转换为8月份,但是克罗地亚语.我总是可以手动将1月改为Siječanj等等,但如果可以使用一些PHP或Carbon的方法来保持我的代码简洁,那将会很好.

php datetime locale php-carbon laravel-5.3

4
推荐指数
1
解决办法
4957
查看次数

Laravel、MySQL 空间点距离:orderBy 和获取距离

谁能帮我正确回答这个问题。

我有一个Concert模型和另一个Location模型。演唱会属于一个地点。位置表有一个空间点字段。

我需要做三件事:

  • 按距用户位置的距离排序
  • 显示距用户位置的距离
  • 获取距用户位置一定距离内的音乐会

到目前为止,我已成功设置数据库并获取距用户一定距离的音乐会,如下所示:

$condition = ($lat != null && $lon != null && $distance != null);
Concert::when($condition, function ($query) use ($distance,$lat,$lon) {
      return $query->whereHas('location', function($query) use ($distance,$lat,$lon) {
          $query->whereRaw('st_distance(location,POINT('.$lat.','.$lon.')) < '.$distance);
      });
  })
->get();
Run Code Online (Sandbox Code Playgroud)

你能帮我如何st_distance在视图中显示它吗?

我如何按距离排序?

正如我在以度为单位的$distance文档中读到的那样,获取英里/公里的正确方法是什么?st_distance

mysql distance spatial laravel

3
推荐指数
1
解决办法
3730
查看次数