当前位置: 首页 > 知识库问答 >
问题:

Laravel查询生成器-特殊数据类型的查询

施念
2023-03-14

我有一张这样的桌子-

因此,我有一个特殊的数据类型()用于用户位置

原始select查询如下所示-

SELECT
  id,
  full_name,
  website,
  X(user_location) AS "latitude",
  Y(user_location) AS "longitude",
  (
    GLength(
      LineStringFromWKB(
        LineString(
          user_location, 
          GeomFromText('POINT(51.5177 -0.0968)')
        )
      )
    )
  )
  AS distance
FROM users
  ORDER BY distance ASC;

结果是-

我想在带有查询生成器的Laravel中使用它,以便(51.5177-0.0968)这2个点可以来自用户输入。

我所做的是-

DB::table('users')
   ->select(
             id,
             full_name,
             website,
             DB::raw('X(user_location) AS "latitude"'),
             DB::raw('Y(user_location) AS "longitude"'),
             DB::raw('(
                        GLength(
                          LineStringFromWKB(
                            LineString(
                              user_location, 
                              GeomFromText('POINT(51.5177 -0.0968)')
                            )
                          )
                        )
                      )
                      AS distance')
             )
  ->orderBy('distance', 'asc')
  ->get();

但它不起作用。

有人能帮忙吗?

共有1个答案

梁渊
2023-03-14

我觉得你很接近了。试试这个:

DB::table('users')
    ->select(
        'id',
        'full_name',
        'website',
        DB::raw('X(user_location) as latitude'),
        DB::raw('Y(user_location) as longitude'),
        DB::raw('(
                GLength(
                  LineStringFromWKB(
                    LineString(
                      user_location,
                      GeomFromText(POINT(51.5177 - 0.0968))
                    )
                  )
                )
              )
              as distance')
    )
    ->where('status', '<>', 1)
    ->orderBy('distance', 'asc')
    ->get();
 类似资料:
  • 我正在使用Laravels查询生成器检索带有一些筛选选项的项目列表-我需要在此查询中进行计数: 计算“Freestyle ID”在likes表中出现的次数。 这有可能吗?返回的数据是完美的,我只需要一个自由泳的喜欢量,其中喜欢表中的自由泳ID为空。

  • 我有一个问题,使laravel查询: 我想举个例子: 我有这个但不起作用:

  • 我想在查询生成器laravel中orderBy 因为我的是类型 所以当它排序的时候...结果远远不是我想要的... 我的剧本就像这样 我已经试过了 我如何铸造OrderBy查询生成器,以便我可以排序desc

  • 我试图从一个表中选择所有结果,并在用户ID匹配时与另一个表合并。 我有三个表:runs、users和一个run\u用户透视表。我想从数据透视表中的“运行”和其他列(即“已完成”、“粘性”、“上次测试”和“难度”)中选择所有结果,但只从当前用户的“运行用户”中提取数据。 在原始SQL中,我通过一个带有AND语句的左连接成功地做到了这一点: 如何通过查询生成器执行此操作,有何建议?我可以在Larave

  • 我对Laravel很陌生,尤其是在从数据库检索东西时。在阅读了他们关于query builder的文档后,我找到了一个部分,其中显示了执行我所需操作的示例代码: 如果不需要整行,可以使用value方法从记录中提取单个值。此方法将直接返回列的值:

  • 本文向大家介绍Oracle 数据库特殊查询总结,包括了Oracle 数据库特殊查询总结的使用技巧和注意事项,需要的朋友参考一下 1. 查询本节点及本节点以下的所有节点: 2. 查询节点中所有的层级关系 3. 对数据库表结构的操作 4. 其他查询 6. loop 的使用 7. 存储过程的书写 以上所述是小编给大家介绍的Oracle 数据库特殊查询总结,希望对大家有所帮助!