如何在Qore的SqlUtil中的where哈希中多次使用同一列

时间:2017-04-26 08:02:15

标签: qore

如何在Qore的SqlUtil中的where哈希中多次使用列?

示例SQL:colname in (...) and colname not in (...)

这里的哈希值如下:

hash sh = ('where': (
              'colname': op_in(...),
              'colname': op_not(op_in(...)),
          ));

当然,相同的密钥不能在哈希中多次使用。

1 个答案:

答案 0 :(得分:6)

这是可能的 - 请参阅:https://docs.qore.org/current/modules/SqlUtil/html/sql_operations.html#where_clauses

来自文档:

  

要在where子句中多次引用列,请在列规范前面加上唯一的数字和冒号,如下例所示:

hash w = ("0:created": op_ge(mindate), "1:created": op_lt(maxdate)); 

生成查询时,上面示例中的数字前缀(以及冒号)将被删除,并且仅用于允许相同的列名在生成的查询中多次出现。

您的示例可能如下所示:

hash sh = (
    "where": (
        "0:colname": op_in(...),
        "1:colname": op_not(op_in(...)),
    ),
);