Thanks. I did not know about those.
On Tue, Feb 21, 2017 at 9:24 AM, Matthew Pava <[email protected]> wrote: > I would use Case and When and other Func objects. > https://docs.djangoproject.com/en/1.10/ref/models/conditional-expressions/ > That way we don't have to depend on raw SQL. > > -----Original Message----- > From: [email protected] [mailto:[email protected]] On > Behalf Of Larry Martell > Sent: Monday, February 20, 2017 3:00 PM > To: [email protected] > Subject: Re: combining ORM and raw SQL in same query > > Thanks! > > > On Mon, Feb 20, 2017 at 10:52 AM, m1chael <[email protected]> wrote: >> i did something like this recently using .extra / select >> >> https://docs.djangoproject.com/en/1.10/ref/models/querysets/#extra >> >> >> >> On Mon, Feb 20, 2017 at 10:49 AM, Larry Martell >> <[email protected]> >> wrote: >>> >>> Is there any way to use both the ORM and raw SQL in the same query? >>> >>> I have an existing app that uses the ORM and now I have a need to add >>> SQL like this to the select: >>> >>> (CASE >>> WHEN TRIM(IFNULL(roiname, '')) IN ('', 'None') THEN CONCAT_WS('.', >>> roi_type_id, roi_id) >>> WHEN CONCAT_WS('.', roi_type_id, roi_id) = roiname THEN roiname >>> ELSE CONCAT_WS('.', roi_type_id, roi_id, roiname) >>> END) as roiname >>> >>> and SQL like this to the where: >>> >>> AND (CASE >>> WHEN TRIM(IFNULL(roiname, '')) IN ('', 'None') THEN CONCAT_WS('.', >>> roi_type_id, roi_id) >>> WHEN CONCAT_WS('.', roi_type_id, roi_id) = roiname THEN roiname >>> ELSE CONCAT_WS('.', roi_type_id, roi_id, roiname) >>> END) REGEXP 'foo' >>> >>> As far as I know I cannot do anything like that with the ORM. I don't >>> want to have to rewrite everything with raw SQL. Is there a way to >>> mix them? -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CACwCsY4N2HTf9g4Ayed_pKWaNQ94pv0q1HpoFH3p7kD0h4au5A%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

