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.

Reply via email to