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

How to use the same column multiple times in the where hash in Qore's SqlUtil

如何在 Qore 的 SqlUtil 的 where hash 中多次使用一个列?

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

这里的 where 哈希看起来像:

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

当然,同一个键不能在哈希中多次使用。

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

来自文档:

To reference a column more than once in a where clause, prefix the column specification with a unique number and a colon as in the following example:

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(...)),
    ),
);