No sé si puedas sacar directamente el contenido como tú lo quieres con las funciones de base de datos.
Sin embargo, si primero metes a un array de PHP todos tus valores que yo llamo
"logins", puedes ordenarlos como tú lo buscas mediante un código como este:
Código PHP:
<?php
//metes en un array todos esos tus logins
$ejemplo=array("++","!carmelo","amigo","[[baston]]","{{daniel}¿","48293","{}{Juan}");
//para cada uno de tus logins, realiza lo siguiente
for($i=0;$i<count($ejemplo);$i++)
{
//extrae las letras en $arr[1]
$status=eregi("([a-z]+)",$ejemplo[$i],$arr);
//agregamos un nuevo valor. Nota que si no contienen letras, entonces
//deja el valor que tenía normalmente. Si contiene letras, lo ordena por
//letras. Lo convierto a Mayúsculas para que la función SORT haga bien su
//trabajo.
$nuevo_array[$i]=$status?strtoupper($arr[1]):$ejemplo[$i];
}
//ordena tu array
sort($nuevo_array);
//muestra tu array
for($i=0;$i<count($nuevo_array);$i++)
echo "<br>$nuevo_array[$i]";
?>
El código listado arriba, imprimirá en pantalla lo siguiente:
Código:
++
48293
AMIGO
BASTON
CARMELO
DANIEL
JUAN
Ese problema que planteas me gustó muchísimo, seguro que en alguna ocasión utilizaré algo así. Pasé un rato agradable resolviéndolo.