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

Псевдоним на колона в клауза WHERE

Не е тестван, но този хак трябва да работи...

SELECT * FROM (  
    SELECT profile.id AS id, given.name AS 'given_name', family.name AS 'family_name'
    FROM green_profile profile 
    LEFT JOIN green_name given ON given.profileid = profile.id AND given.name_typeid = 0 
    LEFT JOIN green_name family ON family.profileid = profile.id AND family.name_typeid = 1   
) as temptable
WHERE given_name LIKE 'levi%' 
ORDER BY given_name DESC LIMIT 0 , 25

Работи, като просто създава временна таблица от вашия оригинален оператор select (без клаузата where и подреждане), която има имената на колоните, които сте посочили. След това избирате от това с имената на колоните, които искате.

По-добър подход може да бъде да създадете изглед с имената на колоните, които искате, и да изберете от изгледа...

CREATE VIEW newtable AS
SELECT profile.id AS id, given.name AS 'given_name', family.name AS 'family_name'
FROM green_profile profile 
LEFT JOIN green_name given ON given.profileid = profile.id AND given.name_typeid = 0 
LEFT JOIN green_name family ON family.profileid = profile.id AND family.name_typeid = 1;

И тогава...

SELECT * FROM newtable
WHERE given_name LIKE 'levi%' 
ORDER BY given_name DESC LIMIT 0 , 25


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SUM(подзаявка) в MYSQL

  2. Как мога да въведа данни, използвайки неанглийски (бангла) език в тази таблица на базата данни?

  3. mysql заявка, за да изберете един конкретен ред и друг произволен ред

  4. Къде мога да намеря списъка с кодове за грешки SQLException за MySQL?

  5. Данните са съкратени за колона „xxxx“ на ред 1