sql >> Databáze >  >> RDS >> Mysql

Dotaz Django raw(), vypočítané pole v klauzuli WHERE

Ve skutečnosti to nemá nic společného se samotným Django, ale s tím, jak funguje MySQL.

Aliasy nelze použít v podmínkách WHERE, protože vyhodnocení klauzule WHERE předchází vyhodnocení aliasů.

Můžete buď:

  • Opakujte větu:

    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''')
    
  • Proveďte dílčí výbě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. Vybírejte z tabulky tím, že znáte pouze datum bez času (ORACLE)

  2. najít N-tý největší prvek v SQL

  3. Jaký je rozdíl mezi pls_integer a binary_integer?

  4. Jak porovnat verze softwaru pomocí SQL Server?