Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zapytanie Django raw(), pole obliczeniowe w klauzuli WHERE

W rzeczywistości nie ma to nic wspólnego z samym Django, ale ze sposobem działania MySQL.

Nie możesz używać aliasów w warunkach WHERE, ponieważ ocena klauzuli WHERE poprzedza ocenę aliasów.

Możesz:

  • Powtórz zdanie:

    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''')
    
  • Wykonaj podwybór:

    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. Odpowiednik kolumny MSSQL IDENTITY w MySQL

  2. Jak stworzyć paginację za pomocą PDO PHP

  3. post zmieniono nazwę pliku z przesyłania do bazy danych

  4. używanie zmiennej środowiskowej do lokalnej konfiguracji sekwencjonowania

  5. Mysqli UPDATE SET WHERE błąd składni