如何在Qore的SqlUtil中的where哈希中多次使用列?
示例SQL:colname in (...) and colname not in (...)
这里的哈希值如下:
hash sh = ('where': (
'colname': op_in(...),
'colname': op_not(op_in(...)),
));
当然,相同的密钥不能在哈希中多次使用。
答案 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(...)),
),
);