问题标签 [query-builder]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 什么是可以在 PHP 5.3 上解析和重建 SQL 查询的优秀查询构建器?
我不想要 ORM。我对自己编写针对性强和优化的查询感到满意,并且我不希望任何类型的 ORM 使我的代码膨胀。
我正在寻找一种轻量级、面向对象的查询解析器和构建器,它可以将现有的SQL 字符串转换为可延展的查询构建对象,以便在重新编译和在数据库上执行之前进行进一步操作。
用例本身正在更新针对公共模式中的表执行的查询,这些表包含来自审计模式的替换表的当前有效信息,同时在 WHERE 子句中添加谓词以呈现来自(新替换的)有效的时间点数据- 时间状态表。
我的另一个用例是在执行之前操纵预先编写的查询以提供额外的过滤器。
解析器/构建器将允许我编写当前有效的查询,但可以毫不费力地将它们转换为时间点等价物。我目前正计划突袭 Doctrine 2 的QueryBuilder
重建部分。有谁知道用于将 SQL 查询解析为基本组件的优秀库?
mongodb - 如何在 Doctrine MongoDB 中使用 QueryBuilderAPI 为一个字段按多个条件查找文档?
我在 MongoDB 中有一个数据模型,我可以通过本机 MongoDB 查询成功查询。但是我无法使用 Doctrine MongoDB ODM 的查询生成器 API 来表达它们。
这就是我的模型在 MongoDB 中的样子(这是一些 JSON 代码示例):
我想通过搜索不同的特征值组合来找到文章,例如我想找到一篇颜色=绿色和宽度=40的文章。
但是,我无法使用 Doctrine MongoDB ODM Query Builder API** 构建查询?这是我尝试过的:
但是,这确实会导致查询,其中仅包含一个条件。另一个条件似乎被覆盖了。这是查询生成器生成的查询:
有没有办法使用 MongoDB ODM Query Builder API 解决我的用例?
php - 如何在 Doctrine 2 中使用 WHERE IN
我有以下代码,它给了我错误:
代码:
数据(或 $ids):
DQL 结果:
sql-order-by - 如何在 Doctrine 2 中按计数排序?
我正在尝试按字段(年份)对我的实体进行分组并对其进行计数。
代码:
我似乎不能说COUNT(b.id) AS count
,因为它给出了一个错误,我不知道用什么作为addOrderby(???, 'DESC')
值?
kohana - 查询生成器和条件语句
问题是什么?
好:
我究竟做错了什么?有人可以帮我吗?请!
谢谢!
sql-server - 如何在 Querybuilder (SQL SERVER 2008) 中嵌入用户定义的函数
我有一个用户定义的函数,它返回一个值。我想将此值添加到查询生成器中的选择查询列中吗?谁能帮我举个例子。
示例:“通过 StudentID 从 StudentDB 组中选择 sum(Marks)”。
现在我想将一个名为 fn_bonusMark 的函数返回的值添加到 Sum(Marks)。只是我想知道在 Querybuilder 中嵌入这个函数的语法。
criteria - Jpa QueryBuilder where子句中的多个表达式不起作用
我在使用 javax.persistence.criteria.CriteriaBuilder 创建查询时遇到问题。我正在使用 EclipseLink 2.1 和 Oracle 10g 数据库。在构建具有多个限制的查询时,它将仅使用第一个限制,而不是两者。
这是我的代码:
产生的查询是:
除了 where 子句,它看起来不错。我期待:
我是否使用 cb.and(arg1, arg2) 也没关系。难道我做错了什么?任何帮助将不胜感激。
php - 帮助使用 DRY 原则在服务类中创建灵活的基本“查找”方法
多年来,我一直在一遍又一遍地(随着进化)重新实现相同的代码,却没有找到某种干净、有效的方法,将其抽象出来。
该模式是我的服务层中的基本“find[Type]s”方法,它将选择查询创建抽象到服务中的单个点,但支持快速创建更易于使用的代理方法的能力(参见示例 PostServivce::getPostById () 方法方式如下)。
不幸的是,到目前为止,我一直无法满足这些目标:
- 减少由不同的重新实现引入的错误的可能性
- 向 IDE 公开有效/无效参数选项以进行自动完成
- 遵循 DRY 原则
我最近的实现通常类似于以下示例。该方法采用一组条件和一组选项,并从中创建并执行一个 Doctrine_Query(我今天主要将其重写,因此可能存在一些拼写错误/语法错误,它不是直接剪切和粘贴)。
呼
这个基函数的好处是:
- 它使我能够随着架构的发展快速支持新的条件和选项
- 它允许我在查询中快速实现全局条件(例如,添加一个默认为 true 的 'excludeDisabled' 选项,并过滤所有 disabled = 0 模型,除非调用者明确表示不同)。
- 它允许我快速创建新的、更易于使用的方法,这些方法代理回调 findPosts 方法。例如:
这种方法的主要缺点是:
- 在每个模型访问服务中都创建了相同的整体“find[Model]s”方法,大部分情况下只有条件切换构造和基表名称发生变化。
- 没有简单的方法来执行 AND/OR 条件操作。所有条件都明确地与。
- 引入了许多拼写错误的机会
- 在基于约定的 API 中引入了许多中断的机会(例如,以后的服务可能需要实现不同的语法约定来指定 orderBy 选项,这对于向后移植到所有以前的服务变得乏味)。
- 违反 DRY 原则。
- 有效条件和选项对 IDE 自动完成解析器隐藏,选项和条件参数需要冗长的文档块解释来跟踪允许的选项。
在过去的几天里,我试图为这个问题开发一个更面向对象的解决方案,但我觉得我正在开发一个过于复杂的解决方案,这个解决方案将过于僵化和限制使用。
我正在努力的想法类似于以下内容(当前项目将是 Doctrine2 仅供参考,所以略有改变)......
最后,Foo\Service\PostService\FindConditions 类的示例:
Foo\Options\FindConditions 和 Foo\Options\FindOptions 非常相似,因此,至少目前它们都扩展了一个通用的 Foo\Options 父类。这个父类处理初始化允许的变量和默认值,访问设置的选项,限制访问仅定义的选项,并为 DqlOptionsMapper 提供一个迭代器接口来循环选项。
不幸的是,在研究了几天之后,我对这个系统的复杂性感到沮丧。照原样,这仍然不支持条件组和 OR 条件,并且指定备用条件比较运算符的能力已经完全陷入了创建 Foo\Options\FindConditions\Comparison 类在指定 FindConditions 时环绕一个值的泥潭值 ( $conditions->setCondition('Foo', new Comparison('NOT LIKE', 'bar'));
)。
如果存在的话,我宁愿使用其他人的解决方案,但我还没有遇到任何可以满足我要求的东西。
我想超越这个过程,回到实际构建我正在从事的项目,但我什至看不到结束的迹象。
所以,Stack Overflowers: - 有没有更好的方法可以提供我已经确定的好处而不包括缺点?
doctrine - 设置参数的学说 2 查询生成器不起作用
这是我的查询:
公共函数 getDetails($userid, $orderby, $sort){
它不断出错:消息:[Semantical Error] line 0, col 83 near '?3 DESC': Error: '?3' is not defined。
如何从该函数的属性中获取 orderby 到查询?
c# - QueryBuilder 修改输入的查询
为什么 QueryBuilder 会修改我的查询?有解决方法吗?
当我输入下面的查询时,QueryBuilder 将查询修改为下面更复杂的版本,需要为 FillBy 方法提供额外的参数。任何额外的参数都会给修改后的查询增加指数级的复杂性。
输入:
修改的:
目标:允许用户按道具、批次或两者进行搜索。我的实际程序将查询几个附加字段。
笔记:
- WinForms 项目(如果适用,则为 VB.NET)
- TestSelection 是 Microsoft Access 数据库中的查询