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

Chỉ chọn hàng / bản ghi duy nhất trong mysql

Bạn có thể sử dụng thủ thuật chỉ dành cho mysql này:

SELECT city, state_prefix, lattitude,longitude
FROM zip_code WHERE city LIKE '$queryString%'
GROUP BY city, state_prefix -- Here's the trick
LIMIT 10

Thao tác này sẽ trả về hàng đầu tiên gặp phải cho mỗi giá trị duy nhất của citystate_prefix .

Các cơ sở dữ liệu khác sẽ phàn nàn rằng bạn có các cột non =--aggregated không được liệt kê trong nhóm bằng hoặc một số thông báo như vậy.

Đã chỉnh sửa

Trước đây, tôi đã tuyên bố rằng không sử dụng upper() trên các cột được nhóm theo nó sẽ trả về tất cả các biến thể chữ hoa chữ thường, nhưng điều đó không chính xác - cảm ơn SalmanA đã chỉ ra điều đó. Tôi đã xác minh bằng SQLFiddle và bạn không cần sử dụng upper() .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Vấn đề so sánh ngày MySQL

  2. Kéo dữ liệu vào mẫu từ cơ sở dữ liệu bên ngoài với django

  3. Không thể sử dụng kết nối MySQL cho khung thực thể 6

  4. Sao chép Mysql trên một máy chủ

  5. Xác định một biến trong vùng chọn và sử dụng nó trong cùng một vùng chọn