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

MySQL - ИЗБЕРЕТЕ КАТО в WHERE

Първо, не можете да използвате ALIAS на WHERE клауза. Трябва да използвате колоната,

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

Причината е следната:реда на работа е SQL,

  • Клауза FROM
  • Клауза WHERE
  • Клауза GROUP BY
  • клауза HAVING
  • клауза SELECT
  • клауза ORDER BY

ALIAS се извършва на SELECT клауза, която е преди WHERE клауза.

ако наистина искате да използвате псевдонима, увийте го в подзаявка,

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Сурова заявка за уместност в Laravel. Как да се справя?

  2. Управление на запасите с опции за акции

  3. Проблеми при използване на MySQL с AWS Lambda в Python

  4. Регистрирайте всички заявки в mysql

  5. MySQL създава база данни, ако не съществува