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) : "")
);
});
});
これは、私の Web サイトの QueryBuilder のサンプル イメージです。ここをクリックしてください 。
前に述べたように、「OR」条件を選択すると、目的の 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 時間以上検索しましたが、その方向を指し示すものは何も見つかりませんでした。どんな助けでも大歓迎です。
**注目すべきことの 1 つは、ルールを SQL ステートメントではなくオブジェクトとして抽出する場合、「XOR」条件が機能することです。ここでは、ステートメントをオブジェクトとして取得するために使用されるコードを確認できます。
$(".parse-json").on("click", function () {
console.log(
JSON.stringify($("#builder").queryBuilder("getRules"), undefined, 2)
);
});