Mysql
 sql >> база данни >  >> RDS >> Mysql

Django raw() заявка, изчислено поле в клауза WHERE

Всъщност няма нищо общо със самото Django, а с начина, по който работи MySQL.

Не можете да използвате псевдоними в условия WHERE, тъй като оценката на клаузата WHERE предхожда оценката на псевдоними.

Можете да:

  • Повторете клаузата:

    Company.objects.raw('''SELECT *,core_location.a + core_location.b as dist
    FROM core_location,core_company
    WHERE (core_location.a + core_location.b)<10    
    ORDER BY dist''')
    
  • Направете подселекция:

    Company.objects.raw('''SELECT * FROM (
        SELECT *,core_location.a + core_location.b as dist
        FROM core_location,core_company            
    ) as subselect
    WHERE dist<10  
    ORDER BY dist''')
    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да създам две колони с автоматично увеличение в MySQL?

  2. MySQL избира топ X записи за всеки индивид в таблицата

  3. mysql_real_escape_string е недефиниран

  4. Използвайте LIMIT, за да разделите резултатите в MySQL заявка

  5. Как да изберете групирани редове само с NULL стойности?