sql >> Databasteknik >  >> RDS >> Mysql

MySQL - VÄLJ SOM I WHERE

För det första kan du inte använda ALIASWHERE klausul. Du bör använda kolumnen,

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

Anledningen är följande:operationsordningen är SQL,

  • FROM-sats
  • WHERE-sats
  • GROUP BY-sats
  • HAVING-sats
  • SELECT-sats
  • ORDER BY-klausul

ALIAS sker på SELECT sats som är före WHERE klausul.

om du verkligen vill använda aliaset, slå in det i en underfråga,

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


  1. får fel HTTP Status 405 - HTTP-metoden GET stöds inte av den här webbadressen men används aldrig "get"?

  2. MySql C++-anslutaren getString() fungerar inte korrekt, medan getInt fungerar perfekt

  3. 1045, Åtkomst nekad för användaren 'användarnamn'@'NOT-local' (med lösenord:JA)

  4. T-SQL datumtid avrundad till närmaste minut och närmaste timmar med hjälp av funktioner