我想使用 jQuery QueryBuilder 插件获取 SQL 语句。使用默认条件“AND”和“OR”时,一切都完全按照我的意愿工作。但是,当我尝试使用“XOR”条件时,会出现错误(见下文)。
这是我的 QueryBuilder 代码:
$(document).ready(function () {
var options = {
allow_empty: true,
filters: [
{
id: "name",
label: "Name",
type: "string",
default_value: "Noah",
size: 30,
unique: true,
},
],
/* XOR does not work with SQL */
conditions: ["AND", "OR", "XOR"],
};
$("#builder").queryBuilder(options);
$(".parse-json").on("click", function () {
var res = $("#builder").queryBuilder("getSQL", $(this).data("stmt"), false);
console.log(
res.sql +
(res.params ? "\n\n" + JSON.stringify(res.params, undefined, 2) : "")
);
});
});
这是我网站上 QueryBuilder 的示例图像: 单击此处
如前所述,当我选择“或”条件时,我得到了所需的 SQL 语句。
name = ? OR name = ?
[
"Noah",
"James"
]
但是当我选择“XOR”条件时,我收到一条错误消息:
Uncaught Error: Unable to build SQL query with condition "XOR"
at Function.error (jquery-2.x-git.min.js:2)
在这里你可以找到给出错误的文件:jquery-2.x-git.min.js:2
我已经在互联网上搜索了 2 个多小时,但我找不到任何远程指向那个方向的东西。任何帮助是极大的赞赏。
**值得注意的一点是,当将规则提取为对象而不是 SQL 语句时,“XOR”条件有效。在这里,您可以看到用于将语句作为对象获取的代码:
$(".parse-json").on("click", function () {
console.log(
JSON.stringify($("#builder").queryBuilder("getRules"), undefined, 2)
);
});