Hi to all. I try to use the code in this way (query LIKE with OR operator) res = session.query(MAPPER).filter(or_(MAPPER.field.contains('Value1'), MAPPER.field.contains('Value2'), MAPPER.field.contains('Value3'),MAPPER .field.contains('Value4')))
With a small dataset, I found the records I want, but with a larger dataset sqlalchemy return me an error: more than 255 arguments. To bypass this problem in the past I used the operator in_ in this way: id_list = [1, 2, 3] session.query(CLASS).filter(CLASS.field.in_(id_list)).all() I've guessed that was possible to make something like this: value_to_find = [CLASS.field.contains('value1'), CLASS.field.contains('value2')] session.query(CLASS).filter(CLASS.field.in_(value_to_find)).all() This script runs without error, but didn't return me any result. Because is a OR type query, it's a good idea make single research for each value and storing the id of every record in a list? Smothing like this: res_list = [] for value in value_list: res = session.query(MAPPER).filter(MAPPER.field.contains(value)) for r in res: res_list.append(res.id_record) Or there is a more pythonic way? Thanks a lot Luca On Fri, Sep 27, 2013 at 5:43 PM, Ofir Herzas <herz...@gmail.com> wrote: > Hi Luca, > Keep in mind that contains will not map to 'like'. Hence if you want your > query to have a 'like' clause, you'll have to use the 'like' method (the > end result of 'contains' will be the same though as 'like' beginning and > ending with a percent sign). > On Sep 27, 2013 5:06 PM, "pyArchInit ArcheoImagineers" < > pyarchi...@gmail.com> wrote: > >> Thanks a lot...sorry for my prevous post that I delete beacause I didn't >> undestand I must to use this ~ >> >> def test_not_like(self): >> Session = sessionmaker(bind=self.engine, autoflush=True, >> autocommit=True) >> session = Session() >> res = session.query(MAPPER).filter(and_(~MAPPER.field.contains('Value1'), >> ~US.field.contains('Value2'), >> ~US.field.contains('Value3'),~US.field.contains('Value4'))) >> >> return res >> >> This appear to run properly now I test with my little dataset and I'll >> try to understand is what I must to find. >> >> Thank you very much and sorry for the unnecessary my old replies. >> Bye >> Luca >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sqlalchemy" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to sqlalchemy+unsubscr...@googlegroups.com. >> >> To post to this group, send email to sqlalchemy@googlegroups.com. >> Visit this group at http://groups.google.com/group/sqlalchemy. >> For more options, visit https://groups.google.com/groups/opt_out. >> > -- > You received this message because you are subscribed to a topic in the > Google Groups "sqlalchemy" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/sqlalchemy/_dpnK-WZzKQ/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > sqlalchemy+unsubscr...@googlegroups.com. > To post to this group, send email to sqlalchemy@googlegroups.com. > Visit this group at http://groups.google.com/group/sqlalchemy. > For more options, visit https://groups.google.com/groups/opt_out. > -- https://sites.google.com/site/pyarchinit/<http://www.pyarchinit.altervista.org> pyarchinit - progetto per la gestione integrata dei dati di scavo su piattaforme GIS Free Open Suorce -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/groups/opt_out.