Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Custom ORDER BY para ignorar 'the'


O melhor é ter uma coluna computada para fazer isso, para que você possa indexar a coluna computada e ordenar por ela. Caso contrário, a classificação será muito trabalhosa.

Então você pode ter sua coluna computada como:
CASE WHEN title LIKE 'The %' THEN stuff(title,1,4,'') + ', The' ELSE title END

Edit:Se STUFF não estiver disponível no MySQL, use RIGHT ou SUBSTRING para remover os 4 caracteres iniciais. Mas ainda tente usar uma coluna computada se possível, para que a indexação possa ser melhor. A mesma lógica deve ser aplicável para extrair "A" e "An".

Roubar