unknown habilitar error engine enable como comando cambiar activar mysql search order innodb relevance

habilitar - mysql cambiar innodb a myisam



MySQL-¿CÓMO HACER PEDIDOS POR RELEVANCIA? Mesa INNODB (1)

Tengo unas 20,000 filas en una tabla INNODB llamadas ''cartas'', por lo que FULLTEXT no es una opción.

Por favor considere esta tabla:

id | name | description ---------------------------------------------------------- 1 John Smith Just some dude 2 Ted Johnson Another dude 3 Johnathan Todd This guy too 4 Susan Smith Her too 5 Sam John Bond And him 6 John Smith Same guy as num 1, another record 7 John Adams Last guy, promise

Entonces, digamos que el usuario busca ''John'', quiero que el conjunto de resultados esté en el orden de:

7 John Adams 6 John Smith 3 Johnathan Todd 5 Sam John Bond 2 Ted Johnson

Tenga en cuenta que solo hemos sacado ''John Smith'' una vez, tomamos su entrada más reciente. Debido a mis datos, todos los nombres son para la misma persona exacta, no hay necesidad de preocuparse por 2 tipos diferentes llamados John Smith. Ideas? Avísame si puedo aclarar algo.


versión 1:

SELECT max(id) id, name FROM cards WHERE name like ''%John%'' GROUP BY name ORDER BY CASE WHEN name like ''John %'' THEN 0 WHEN name like ''John%'' THEN 1 WHEN name like ''% John%'' THEN 2 ELSE 3 END, name

versión 2:

SELECT max(id) id, name FROM cards WHERE name like ''%John%'' GROUP BY name ORDER BY CASE WHEN name like ''John%'' THEN 0 WHEN name like ''% %John% %'' THEN 1 WHEN name like ''%John'' THEN 2 ELSE 3 END, name