Hi Anthony! Of course my exaple is very simplified and - sorry - I did not test it. Now I have found the solution
I have written: query1 = db.sendeprotokoll.typ=="UMF" query1 &= *db*("extra->>'umfragetextid'='4'") r1 = db(query1)._select("sendeprotokoll.typ", "sendeprotokoll.extra") But it should be: query2 = db.sendeprotokoll.typ=="UMF" query2 &= "extra->>'umfragetextid'='4'" r2 = db(query2)._select("sendeprotokoll.typ", "sendeprotokoll.extra") query1 : <Query (("sendeprotokoll"."typ" = 'UMF') AND <Set extra->>'umfragetextid'='4'>)> query2 : <Query (("sendeprotokoll"."typ" = 'UMF') AND extra->>'umfragetextid'='4')> r1 : SELECT "sendeprotokoll"."typ", "sendeprotokoll"."extra" FROM "sendeprotokoll" WHERE ((("sendeprotokoll"."typ" = 'UMF') AND <Set extra->>'umfragetextid'='4'>)); r2 : SELECT "sendeprotokoll"."typ", "sendeprotokoll"."extra" FROM "sendeprotokoll" WHERE ((("sendeprotokoll"."typ" = 'UMF') AND extra->>'umfragetextid'='4')); Ok, problem solved, thank you! ------------------------------------------------- But there is another question. I want to use the json-query alone: query3 = "extra->>'umfragetextid'='4'" r3 = db(query3)._select("sendeprotokoll.typ", "sendeprotokoll.extra") r3: SELECT "sendeprotokoll"."typ", "sendeprotokoll"."extra" FROM "sendeprotokoll" WHERE extra->>'umfragetextid'='4'; Looks good? But with r3 = db(query3).select("sendeprotokoll.typ", "sendeprotokoll.extra") I get a new error message and it comes from *dal/pydal/adapters/base.py* Ticket ID 195.230.45.151.2018-06-01.14-28-47.268ac848-705b-4300-ae59-bdb12d065fa4 <class 'psycopg2.DataError'> cannot extract element from a scalarVersion web2py™ Version 2.15.4-stable+timestamp.2017.09.02.04.02.22 Python Python 2.7.12: /usr/local/bin/uwsgi (prefix: /usr/local) Function argument list (self=<pydal.adapters.postgres.PostgrePsyco object>, *args=('SELECT "sendeprotokoll"."typ", "sendeprotokoll"....endeprotokoll" WHERE extra->>\'umfragetextid\'=\'4\';',), **kwargs={}) Code listing 407. 408. 409. 410. 411. 412. 413. 414. 415. 416. def execute(self, *args, **kwargs): command = self.filter_sql_command(args[0]) handlers = self._build_handlers_for_execution() for handler in handlers: handler.before_execute(command) rv = self.cursor.execute(command, *args[1:], **kwargs) for handler in handlers: handler.after_execute(command) return rv Variables rv undefined self <pydal.adapters.postgres.PostgrePsyco object> args ('SELECT "sendeprotokoll"."typ", "sendeprotokoll"....endeprotokoll" WHERE extra->>\'umfragetextid\'=\'4\';',) self.cursor <cursor object at 0x7f25d425d050; closed: 0> command 'SELECT "sendeprotokoll"."typ", "sendeprotokoll"....endeprotokoll" WHERE extra->>\'umfragetextid\'=\'4\';' self.cursor.execute <built-in method execute of psycopg2._psycopg.cursor object> kwargs {} What is wrong? 2018-05-31 23:14 GMT+02:00 Anthony <abasta...@gmail.com>: > "<set..." is the string representation of a DAL Set object. > > Can you show your exact code? Here's what I get: > > >>> db('j->>"x" = 1')._select(db.j.id) > 'SELECT "j"."id" FROM "j" WHERE j->>"x" = 1;' > > Anthony > > On Thursday, May 31, 2018 at 5:01:08 PM UTC-4, mweissen wrote: >> >> Let's say I have a table like >> db.define_table("mytable", Field("j", "json")) >> with some data like db.mytable.insert(j={"x":1}) >> >> Now I want to find all records with x==1. >> Of course >> db(db.mytable.j["x"]==1) >> does not work (but it would be fine). >> >> I have tried some queries like >> db.mytable.j.like("%1%") >> db('(j-->x)=1') >> >> but nothing did work. web2py creates always a sql-statement with >> .... WHERE <Set(j-->X)=1>... >> >> Postgresql does not understand <set - there is an error message >> syntax error at or near "<" Where does this "<set..>" come from? >> Any ideas? >> >> Regards, Martin >> >> -- > Resources: > - http://web2py.com > - http://web2py.com/book (Documentation) > - http://github.com/web2py/web2py (Source code) > - https://code.google.com/p/web2py/issues/list (Report Issues) > --- > You received this message because you are subscribed to the Google Groups > "web2py-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to web2py+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.