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

Как да направя една sql заявка за търсене по-мощна?

нещо като

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

трябва да работи добре.

всъщност това ще работи по-добре

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

FWIW Направих някои бързи тестове и ако 'Име' е в НЕКЛУСТРИРАН ИНДЕКС SQL ще използва индекса и не прави сканиране на таблица. Също така изглежда, че LIKE използва по-малко ресурси от charindex (който връща по-малко желани резултати). Тествано на 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. node-mysql множество изрази в една заявка

  2. Хибернация, за да продължи датите толкова дълго

  3. Jar във външни библиотеки, но не може да се импортира в код

  4. Избиране на последните 7 дни от Now() в MYSQL

  5. Проверка на грешка за подготвени изявления за PDO