2009-03-21 52 views
7

Tengo una base de datos en SQLlite y me gustaría ordenar mi tabla en orden alfabético. ¿Cómo puedo hacerlo? ¿Hay alguna forma de clasificar entradas usando solo SQLite o tengo primero que leer una tabla en una matriz, ordenarla y luego escribirla en una base de datos?SQLite - ordenando una tabla

Aquí está mi consulta: "SELECCIONAR la entrada FROM table WHERE id =?" Necesito obtener datos de la tabla usando esta declaración para obtener solo una entrada a la vez.

Gracias de antemano, Ilya.

Respuesta

13
'Select name from table order by name asc' 

'ASC' es ascendente, le dará el campo de texto en orden alfabético, a la inversa 'desc' dará a usted en orden alfabético inverso.

Editar: como regla general, debe dejar que la base de datos haga la clasificación. La publicación a continuación está relacionada, y podría decirse, casi lo mismo. Puede que le resulte útil:

PHP/SQL: ORDER BY or sort($array)?

+0

Gracias, esto ayuda. Pero, ¿cómo puedo asignar nuevos ID a cada fila después de ordenar? Entonces esos cambios aparecerán en mi mesa. Si quiero obtener una entrada con ID = 0, me dará una palabra que comience desde A y así sucesivamente. –

+0

@Ilya: Las claves de ID no son números de fila. Deben ser únicos, pero no están en ningún orden (ni contiguo). Ordene según la columna 'nombre', y use el valor ID solo como una forma de referenciar la fila. –

+0

¿Quiere decir que quiere reordenar los datos alfabéticamente de modo que a la primera entrada (alfabética) se le asigna el número de identificación más bajo? Puede insertar en una nueva tabla y luego eliminar la anterior, p. SELECCIONE el nombre INTO table2 FROM orden de la tabla por nombre asc – karim79

0

Si desea ordenar mesa sin mayúsculas y minúsculas o con la configuración regional específica (no Inglés) hay que añadir a su cotejo SQLite. Here es un ejemplo de cómo hacerlo.

2

También vale la pena enfatizar que el orden de los datos en cualquier tabla de base de datos SQL, o recuperado de tal utilizando una consulta que no incluye una cláusula order by, no está definido.

En la práctica, una lectura directa de una tabla sin una orden por recuperación de datos en un orden fijo y suele ser el orden de inserción. Sin embargo, para confiar en esto es siempre un error, aunque uno que se ve alarmantemente a menudo.

Cuestiones relacionadas