标签: query-builder

Microsoft SQL Server的开源查询构建器工具

好的,我在SO中搜索过它,但是我找不到它.有人能告诉我一个用于处理Microsoft SQL Server数据库的好的开源查询构建器工具吗?

sql-server open-source query-builder

6
推荐指数
1
解决办法
2万
查看次数

doctrine 2 - 查询构建器条件查询...如果语句?

我的查询是doctirne 2.我在用户,私人或公共领域都有一个状态字段.我希望能够运行此查询并显示所有注释status = public和private如果userid =当前登录用户ID(我知道,$ loggerUserVarID)

  $q = $this->em->createQueryBuilder()
            ->select('c')
            ->from('\Entities\Comments', 'c')
            ->leftJoin('c.users', 'u')
            ->where('status = public')  ???  display all public comments but private if it belpongs to the logged in user.?
            ->setParameter(1, $loggerUserVarID)
            ->getQuery();
Run Code Online (Sandbox Code Playgroud)

此刻,我在获得结果后使用if语句,是否有办法在此查询中执行if语句?

doctrine query-builder doctrine-orm

6
推荐指数
1
解决办法
5616
查看次数

Doctrine实体管理器中的Symfony2子查询

我需要执行此查询:

SELECT * FROM (SELECT * FROM product WHERE car = 'large' ORDER BY onSale DESC) AS product_ordered GROUP BY type
Run Code Online (Sandbox Code Playgroud)

在Symfony2中使用实体管理器.

我的基本查询构建器将是:

 $query = $em->getRepository('AutomotiveBundle:Car')
        ->createQueryBuilder('p')
        ->where('pr.car = ?1')
        ->andWhere('pr.status = 1')
        ->orderBy('pr.onSale', 'DESC')
        ->setParameter(1, $product->getName())
        ->groupBy('p.type')
        ->getQuery();
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何在子查询中添加.

我试过单独的查询并加入它像:

 ->andWhere($query->expr()->in('pr.car = ?1',$query2->getQuery()));
Run Code Online (Sandbox Code Playgroud)

但我得到:

Call to undefined method Doctrine\ORM\Query::expr()
Run Code Online (Sandbox Code Playgroud)

doctrine entitymanager query-builder symfony

6
推荐指数
2
解决办法
1万
查看次数

如何在ORMLite中使用random()进行排序

如何进行查询以获取限制为3行的random()行?

我试过但得到错误:

myQueryBuilder.orderBy("random()", true);
Run Code Online (Sandbox Code Playgroud)

android query-builder ormlite

6
推荐指数
1
解决办法
650
查看次数

如何更新doctrine中的字段以将其设置为null

我想将null设置为doctrine中的一个字段,这里是句子

$em = $this->getDoctrine()->getManager();
$qb = $em->createQueryBuilder();
$query = $qb->update('Model\Example', 'u')->set('u.deletedAt', ':deletedAt')
->where("u.id IN (:ids)")->setParameter('deletedAt', null)
->setParameter('ids', $ids)
->getQuery();
 $query->execute();
Run Code Online (Sandbox Code Playgroud)

我认为这段代码应该可以完成这项工作,但是我得到了这个例外

执行'UPDATE example SET deleted_at =?时发生异常?WHERE(id IN(?))AND(example.deleted_at IS NULL)'with params [null,"5,6"]:SQLSTATE [22P02]:无效的文本表示:7错误:la sintaxis de entrada noesválidaparainteger :«5,6»

首先为什么学说添加AND(example.deleted_at IS NULL)我做错了什么?

php doctrine query-builder symfony doctrine-orm

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

语法错误:第0行,第81列:错误:预期文字,得到'NULL'

[Syntax Error] line 0, col 81: Error: Expected Literal, got 'NULL'当我尝试通过查询构建器执行查询时出错

        $qb = $this->createQueryBuilder('r')
            ->select('r')
            ->where('r.query = :query')
            ->setParameter('query', $query)   
            ->andWhere('r.lang = NULL')
        ;

        return $qb->getQuery()->getOneOrNullResult();
Run Code Online (Sandbox Code Playgroud)

r.lang 字段定义为:

/**
 * @var integer
 *
 * @ORM\ManyToOne(targetEntity="\BW\LocalizationBundle\Entity\Lang")
 * @ORM\JoinColumn(name="lang_id", referencedColumnName="id")
 */
private $lang;
Run Code Online (Sandbox Code Playgroud)

请帮忙解决错误

query-builder symfony doctrine-orm

6
推荐指数
1
解决办法
9034
查看次数

如何使用CakePHP查询构建器生成SQL函数调用?

我有一个作者的全名列,并希望将姓氏提取到另一列.我使用以下原始SQL执行此操作:

SELECT name,
SUBSTRING_INDEX(`name`, ' ', -1) AS `surname`
FROM qr.authors;
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述

在"使用SQL函数"下,Cookbook说:

除了上述函数之外,func()方法还可用于创建任何通用SQL函数,如year,date_format,convert等.

但是如何通过func()方法创建这个SUBSTRING_INDEX函数,以便我可以将它与CakePHP查询构建器一起使用?

cakephp sql-function query-builder cakephp-3.0

6
推荐指数
1
解决办法
1618
查看次数

用点表从MySQL找到最近的点

我有这样一个DB Schema(来自Google的这个教程) -

DB Schema

所以图中的实际点就像这样 -

物理位置

我想要的是找到靠近距离排序的给定点(by point_id)点附近的点

点的位置(x,y)是(point_x,point_y)在DB中

我想用MySQL解决它,因为我的数据库已经在MySQL中了.


最新情况:

找到2点的距离就像这样容易 -

寻找距离

我想根据MySQL的距离进行排序.


回覆-

为了消除混淆,我想要稍后在圆圈内的点.但现在我只想找到排序点.

所以你可以忽略这些圈子.


我不知道怎么做,有人可以帮忙吗?

mysql algorithm location geolocation query-builder

6
推荐指数
1
解决办法
6251
查看次数

Laravel Query Builder从加入计算

所以在我的数据库中我有一个表调用website_tags,包含id, title等等,而且我也有一个表调用websites,具有相似的结构.还有一个名为table的表assigned_tags,它包含标签和网站之间的关系,因此它包含关系id, tag_id and website_id.

我需要的是将这些表与查询联系起来,我需要获取所有标记并计算这些标记的使用次数.因此,例如website_tags包含以下信息:

1: men
2: women
Run Code Online (Sandbox Code Playgroud)

分配的标签包含id:tag_id:website_id

1: 1: 1
2: 1: 2
3: 2: 2
Run Code Online (Sandbox Code Playgroud)

因此,我将在2个网站中使用"男人"标签,并在1中使用"女人"标签.我应该如何构建查询? 现在我有:

DB::table('website_tags')
->join('assigned_tags', 'website_tags.id', '=', 'assigned_tags.tag_id')
->select('website_tags.id as id', 'website_tags.title as title', DB::raw("count(assigned_tags.tag_id) as count"))-
>get();
Run Code Online (Sandbox Code Playgroud)

但这是错误的,此查询只计算assigned_tags中的行.

php mysql query-builder laravel

6
推荐指数
1
解决办法
1万
查看次数

Laravel使用查询构建器嵌套连接查询

这是一个搜索功能,可以返回每个成员注册的最近年份.

我让它使用DB :: raw()调用.但无法让它与查询构建器一起使用.

工作守则:

$query = DB::table('membership as m');
$query->join(
    DB::raw(
        '(SELECT my.*
        FROM membership_years my
        INNER JOIN (
            SELECT member_id,MAX(membership_year) AS max_my
            FROM membership_years
            GROUP BY member_id
        ) my2
        ON my.member_id = my2.member_id
        AND my.membership_year = my2.max_my
        ) my'
    )
,'m.id','=','my.member_id');
Run Code Online (Sandbox Code Playgroud)

我对查询构建器代码的尝试:

$query = DB::table('membership as m');
$query->join('membership_years as my',
  function($j1){
    $j1->join('membership_years as my2',
      function($j2){
        $j2->where('my.membership_year','=','MAX(my2.membership_year)')
        ->on('my.member_id','=','my2.member_id');
      }
    )->on('m.id','=','my.member_id');
  }
);
Run Code Online (Sandbox Code Playgroud)

产生的错误是:

调用未定义的方法Illuminate\Database\Query\JoinClause :: join()

我不确定这是否因为$j2无法再访问join方法了?

原始MySQL查询:

SELECT my.membership_year,m.*
FROM membership AS m 
INNER JOIN
    ( …
Run Code Online (Sandbox Code Playgroud)

php mysql join query-builder laravel

6
推荐指数
1
解决办法
4027
查看次数