sql >> Database >  >> RDS >> Mysql

MySQL - SELECTEER ALS in WAAR

Ten eerste kunt u ALIAS . niet gebruiken op de WHERE clausule. Je zou de kolom moeten gebruiken,

SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val 
FROM   users 
WHERE  SUBSTRING(rating, INSTR(rating,',') +1, +2) = '15'

De reden is als volgt:de volgorde van bewerking is SQL,

  • FROM-clausule
  • WHERE-clausule
  • GROUP BY-clausule
  • HAVING-clausule
  • SELECT-clausule
  • ORDER BY-clausule

de ALIAS vindt plaats op de SELECT clausule die vóór de WHERE . staat clausule.

als je de alias echt wilt gebruiken, stop hem dan in een subquery,

SELECT *
FROM
    (
        SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val 
        FROM   users
    ) s
WHERE   val  = '15'


  1. Hoe SQL-variabelen in PHP te binden?

  2. MySQL utf8mb4, fouten bij het opslaan van emoji's

  3. tabel- en kolomnaam dynamisch doorgeven met behulp van bindvariabelen

  4. MySQL-updatekolom alleen als waarde niet leeg is waar