sql >> Database >  >> RDS >> Mysql

Hoe maak je een SQL-zoekopdracht krachtiger?

zoiets als

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

zou goed moeten werken.

eigenlijk zal dit beter werken

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

FWIW Ik heb wat snelle tests gedaan en als 'Naam' in een NIET-GECLUSTERDE INDEX staat, zal SQL de index gebruiken en geen tabelscan uitvoeren. Ook lijkt LIKE minder bronnen te gebruiken dan charindex (wat minder gewenste resultaten oplevert). Getest op sql 2000.



  1. mysql:haal het aantal records tussen twee datum-tijd

  2. Oracle-entiteit in VS-entiteitsframework werkt de primaire sleutel in code niet bij

  3. Hoe de naam van een beperking in SQL Server te vinden

  4. Groeperen op een bereik van X dagen