标签: query-builder

Yii2:使用查询构建器更新字段

如何在Yii2中使用查询构建器更新字段?我在文档中找不到这个.

谢谢!

UPD

这是解决方案:

// UPDATE
$connection = Yii::$app->db;
$connection->createCommand()->update('user', ['status' => 1], 'age > 30')->execute();
Run Code Online (Sandbox Code Playgroud)

updating query-builder yii2

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

JavaScript布尔搜索查询生成器接口库?

是否存在用于管理自定义布尔样式查询创建的(良好/可用/非丑陋)JavaScript /接口库,类似于Google Analytics高级细分市场界面?

基本上,用于查询构建的动态接口可用于连接到后端的自定义查询构建器(在我的情况下,MySQL,但它不需要是特定于数据库的).

我四处搜寻,但没有找到任何有用或有用的东西.

Google Analytics查询构建器

javascript database user-interface query-builder boolean-search

25
推荐指数
2
解决办法
7850
查看次数

Laravel查询构建器 - 使用修改的where语句重用查询

我的应用程序动态构建并运行复杂查询以生成报告.在某些情况下,我需要获得多个,有些任意的日期范围,所有其他参数都相同.

所以我的代码使用一堆连接,数组,排序,限制等来构建查询,然后运行查询.我当时想要做的是跳转到Builder对象并更改where子句,这些子句定义要查询的日期范围.

到目前为止,我已经做到了这样,以便在任何其他时间之前设置日期范围,然后尝试手动更改wheres数组的相关属性中的值.像这样;

$this->data_qry->wheres[0]['value'] = $new_from_date;
$this->data_qry->wheres[1]['value'] = $new_to_date;
Run Code Online (Sandbox Code Playgroud)

然后我做(已经做过一次)

$this->data_qry->get();
Run Code Online (Sandbox Code Playgroud)

虽然不起作用.查询只与原始日期范围一起运行.即使我的方式有效,我仍然不喜欢它,因为它似乎是以不稳定的依赖(某种耦合?)来拍摄的.即; 如果没有先设置日期,则它们全部崩溃.

可以从头开始重新设置整个查询,只是使用不同的日期范围,但这看起来很糟糕,因为查询中的其他内容需要与上次使用时相同.

如何以正确/最好的方式实现这一点的任何想法都是非常受欢迎的.

谢谢,

杰夫

php mysql query-builder laravel

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

Laravel 5.1在复制时创建或更新

在Laravel 5.1中,对于MySQL插入,我想查看记录是否已经存在并在重复时更新,或者如果不存在则创建新的.

我已经搜索了那里的答案是旧的laravel版本.在其中一个老话题中,它说updateOrCreate()去年核心增加了一种新方法.但是当我尝试这个时,我收到了错误:

Integrity constraint violation: 1062 Duplicate entry '1' for key 'app_id' 
Run Code Online (Sandbox Code Playgroud)

这是我使用的查询:

AppInfo::updateOrCreate(array(
    'app_id' => $postData['appId'],
    'contact_email' => $postData['contactEmail']
));
Run Code Online (Sandbox Code Playgroud)

app_id该表中的唯一外键在哪里,我想更新记录(如果存在)或创建新记录.我试过搜索5.1文档但找不到我需要的信息.有人可以在这里指导我吗...

query-builder laravel eloquent laravel-5

25
推荐指数
4
解决办法
4万
查看次数

小组不工作 - Laravel

我无法在Laravel 5.3中运行这个简单的查询

$top_performers = DB::table('pom_votes')
        ->groupBy('performer_id')
        ->get();
Run Code Online (Sandbox Code Playgroud)

它给了我:

SQLSTATE[42000]: Syntax error or access violation: 1055 'assessment_system.pom_votes.id' isn't in GROUP BY (SQL: select * from `pom_votes` group by `performer_id`)
Run Code Online (Sandbox Code Playgroud)

但是,如果我从错误中复制原始查询并直接在PhpMyAdmin中触发,它可以正常工作.

我已经检查了这个:

https://laravel.com/docs/5.3/queries#ordering-grouping-limit-and-offset

任何帮助将是appricaited.

谢谢,

Parth Vora

query-builder laravel laravel-5.3

25
推荐指数
4
解决办法
3万
查看次数

doctrine2中的子查询notIN函数

我想选择没有特定服务的会员.我有3张桌子:

  • membre
  • service
  • membre_service(membre和之间的关系service)

我正在使用doctrine 2,在SQL中我的查询是:

SELECT m.* FROM membre m WHERE m.`id` NOT IN (
    SELECT ms.membre_id FROM membre_service ms WHERE ms.service_id != 29
)
Run Code Online (Sandbox Code Playgroud)

在Doctrine,我做:

$qb  = $this->_em->createQueryBuilder();
$qb2 = $qb;
$qb2->select('m.id')
        ->from('Custom\Entity\MembreService', 'ms')
        ->leftJoin('ms.membre', 'm')
        ->where('ms.id != ?1')
        ->setParameter(1, $service);

    $qb  = $this->_em->createQueryBuilder();
    $qb->select('m')
        ->from('Custom\Entity\Membre', 'm')
        ->where($qb->expr()->notIn('m.id', $qb2->getDQL())
    );
    $query  = $qb->getQuery();
    //$query->useResultCache(true, 1200, __FUNCTION__);

    return $query->getResult();
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

语义错误]第0行,第123页'm WHERE ms.id'附近:错误:'m'已经定义.

php query-builder doctrine-orm

24
推荐指数
3
解决办法
5万
查看次数

symfony2表单带有参数的querybuilder

我想将我的实体放在查询生成器的函数中:

->add( 'weeks', 'entity', array(
    'class' => 'MV\CaravanBundle\Entity\CaravanRow',
    'property' => 'line',
    'query_builder' => function(EntityRepository $er ) use ( $caravan ) {
        return $er->createQueryBuilder('w')
                  ->orderBy('w.dateFrom', 'ASC')
                  ->where('w.caravan = ?', $caravan )
                  ->andWhere('w.visible = 1')
                  ->andWhere('w.booked = 0');
}
Run Code Online (Sandbox Code Playgroud)

但得到消息:

在此上下文中不允许表达"实体\名称"类型

那么提供querybuilder信息的(最佳)方法是什么呢?

forms builder query-builder symfony

23
推荐指数
2
解决办法
4万
查看次数

Laravel其中在OR whereIn

我正在通过过滤器进行产品搜索:

我的代码:

->where(function($query) use($filter)
{
  if(!empty($filter)){
    foreach ($filter as $key => $value) {           
      $f = explode(",", $value);        
      $query-> whereIn('products.value', $f);
    }           
  }
})
Run Code Online (Sandbox Code Playgroud)

查询:

and (products.value in (Bomann, PHILIPS) and products.value in (red,white)) 
Run Code Online (Sandbox Code Playgroud)

但是我需要:

and (products.value in (Bomann, PHILIPS) OR products.value in (red,white)) 
Run Code Online (Sandbox Code Playgroud)

Laravel有类似的东西:

orWhereIn
Run Code Online (Sandbox Code Playgroud)

php mysql query-builder laravel laravel-4

23
推荐指数
5
解决办法
9万
查看次数

如何使用ORMLite查询构建器获取表中的总记录

相近

select count(*) from tablename;
Run Code Online (Sandbox Code Playgroud)

什么应该在ORMLITE中查询

我尝试过类似的东西

int total = dao.queryBuilder().("select count(*)");
Run Code Online (Sandbox Code Playgroud)

android query-builder ormlite

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

yii2 ActiveQuery'OR LIKE'过滤器

我有一个任务 - 添加搜索模型搜索全名.全名是名字+姓氏.所以我需要构建查询

WHERE first_name LIKE '%var%' OR last_name LIKE '%var%'
Run Code Online (Sandbox Code Playgroud)

我能做到的唯一方法:

$query->andFilterWhere([
'OR',
'profiles.first_name LIKE "%' . $this->userFullName . '%" ',
'profiles.last_name LIKE "%' . $this->userFullName . '%"'
]);
Run Code Online (Sandbox Code Playgroud)

但我不喜欢它,因为它不安全.我不知道怎么...我认为有办法用yii2活动构建器构建这样的查询,我想得到结果像

$query->andFilterWhere(['LIKE', 'profiles.first_name', $this->userFullName]);
$query->andFilterWhere(['OR LIKE', 'profiles.last_name', $this->userFullName]);
Run Code Online (Sandbox Code Playgroud)

问题出在查询中,我可以使用数组作为属性将被comapred的值,但我不能使用数组作为要比较的属性列表.

要么

$subQuery1 = Profile::find()->Where(['LIKE', 'profiles.first_name', $this->userFullName]);
$subQuery2 = Profile::find()->Where(['LIKE', 'profiles.last_name', $this->userFullName]);
//i think its overloaded(3 queries insteadof 1 but still) and the final query
$query->andFilterWhere([
'OR',
$subQuery1,
$subQuery2
]);
Run Code Online (Sandbox Code Playgroud)

任何想法如何构建查询whithout"%"?

query-builder yii2

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