Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Bí danh cột trong mệnh đề WHERE

Chưa được kiểm tra, nhưng bản hack này sẽ hoạt động ...

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

Nó hoạt động đơn giản bằng cách tạo một bảng tạm thời từ câu lệnh chọn ban đầu của bạn (không có mệnh đề where và thứ tự), có các tên cột mà bạn chỉ định. Sau đó, bạn chọn từ đây với các tên cột bạn muốn.

Cách tiếp cận tốt hơn có thể là tạo một dạng xem, với các tên cột bạn muốn và chọn từ dạng xem ...

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;

Và sau đó ...

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. Django AWS RDS MySQL Error:(2026, 'SSL connection error:error:00000001:lib (0):func (0):reason (1)')

  2. mysql cắt bớt số nguyên thành một số lạ khi tìm và chèn

  3. Cách tắt kiểm tra khóa ngoại trong MySQL

  4. str_replace trong SQL UPDATE?

  5. Sử dụng backquote / backticks cho các truy vấn mysql