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

Làm thế nào để xác định xem một truy vấn MySQL là hợp lệ?

Để bắt đầu, dấu phẩy sau select * không thuộc về.

Thứ hai, bạn đặt bí danh cho các bảng của mình (table_2 ttable_1 a ), nhưng sau đó bạn không sử dụng bí danh một cách nhất quán, vì vậy bạn có thể gặp sự cố trong thời gian chạy. Ngoài ra từ quan điểm bảo trì, tôi nghĩ rằng hầu hết mọi người thích sử dụng bí danh khi được khai báo và không có bí danh nào khác.

Thứ ba, bạn thực hiện so sánh với cols từ bảng t trong vùng chọn bên ngoài ('smith' in (t.column1, t.column2) ), khi điều đó có vẻ không cần thiết. Bạn chỉ có thể làm điều đó trong lựa chọn bên ngoài. Nói cách khác, bạn có thể di chuyển dấu ngoặc đơn đó đến trước AND ('smith' ...

Về việc liệu nó có hoạt động hay không - tôi không biết, vì tôi không biết bạn đang cố gắng hoàn thành điều gì.

Kết hợp lại, điều đó sẽ để lại cho bạn:

SELECT t.*
FROM TABLE_2 t
WHERE EXISTS (SELECT IF(a.column1 = 'smith', a.column2, a.column1)       
              FROM TABLE_1 a
              WHERE 'smith' IN (a.column1, a.column2)
              AND a.status = 1)
AND ( 'smith' IN (t.column1, t.column2)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Áp dụng truy vấn mysql cho mỗi bảng trong cơ sở dữ liệu

  2. Cách đổi tên bảng trong MySQL

  3. Có khả năng ANY_VALUE cho mysql 5.6 không?

  4. Sắp xếp bảng, sử dụng vòng lặp trong MySQL với SELECT và UPDATE

  5. Đóng kết nối MySQL (PHP)