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

Làm thế nào để làm cho một truy vấn tìm kiếm sql mạnh mẽ hơn?

một cái gì đó giống như

Select * from TableName where Name Like 'Spa%'
ORDER BY case when soundex(name) = soundex('Spa') then '1' else soundex(name) end

nên hoạt động tốt.

thực sự điều này sẽ hoạt động tốt hơn

Select * from TableName where Name Like 'Spa%'
ORDER BY DIFFERENCE(name, 'Spa') desc;

FWIW Tôi đã thực hiện một số kiểm tra nhanh và nếu 'Tên' nằm trong CHỈ SỐ KHÔNG ĐƯỢC ĐIỀU CHỈNH, SQL sẽ sử dụng chỉ mục và không quét bảng. Ngoài ra, LIKE dường như sử dụng ít tài nguyên hơn charindex (trả về kết quả ít mong muốn hơn). Đã thử nghiệm trên sql 2000.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP Kiểm tra hàng cuối cùng của MySQL

  2. Mã hóa mật khẩu trong Java hoặc MySQL?

  3. Truy vấn MySQL với nhiều bảng

  4. Nối hai bảng với tất cả các bản ghi

  5. Tìm kiếm trực tiếp bằng Codeigniter Mysql