2011-01-28 29 views
7

¿Cómo ordenar los resultados de mysql por prioridad de columna?¿Cómo ordenar los resultados de mysql por prioridad de columna?

Ejemplo. Tengo una tabla de productos, la tabla contiene dos columnas, nombre del producto (p.name) y descripción del producto (p.desc).

Los usuarios deben poder ingresar palabras clave para encontrar productos en la base de datos.

"p.name LIKE '%keyword%' OR p.desc LIKE '%keyword%' 

Quiero los resultados que coincidan con p.name devuelto primero y el segundo p.desc.

¿Cómo podría lograr esto?

Respuesta

11

me gustaría probar algo así como

ORDER BY (NOT (p.name LIKE '%keyword%')) 

Si su primera condición se cumple, order by cláusula evaluará a false. Por lo tanto, dichos registros se seguirán adelante.

edición
signo igual (=) tiene probablemente la cuestión por error.

+2

Eso funciona, pero podría necesitar optimización en conjuntos más grandes. – Piskvor

+0

'LIKE = ...'? – Gumbo

+0

@Gumbo Bueno, supuse que ya funciona para él :) –

Cuestiones relacionadas