Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

qore

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

Example SQL: colname in (...) and colname not in (...)

Here a where hash would look like:

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

Of course the same key cannot be used more than once in a hash.

like image 940
mato Avatar asked Apr 26 '17 08:04

mato


1 Answers

This is possible - see: https://docs.qore.org/current/modules/SqlUtil/html/sql_operations.html#where_clauses

from the docs:

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)); 

the numeric prefix as in the example above (along with the colon) is removed when generating the query and is used only to allow for the same column name to appear more than once in the generated query.

Your example could look like:

hash sh = (
    "where": (
        "0:colname": op_in(...),
        "1:colname": op_not(op_in(...)),
    ),
);
like image 105
David Nichols Avatar answered Sep 23 '22 00:09

David Nichols