2012-03-29 15 views
5

Attualmente, sto recuperando alcuni dati da una tabella di database MySQL, ma il problema è ogni volta che la query viene eseguita, per impostazione predefinita MySQL ordina il risultato in base a generato automaticamente- id che è il nome del campo [id]. Non voglio essere ordinato. Nel mio caso:Non voglio MySQL per ordinare i risultati trovati

$keys = array(4, 1, 7, 8, 2, 5, 6); 
$strKeys = implode(',', $keys); 
$result = mysql_query('SELECT * FROM tableName WHERE id in('.$strKeys.')'); 

voglio il risultato in modo da ciò che i tasti $ assomiglia: 4, 1, 7, 8, 2, 5, 6 ma in realtà, il risultato viene fuori in modo ordinato per [id]: 1, 2, 4, 5, 6, 7, 8

Come ottenere il risultato e visualizzare come in ordine dai tasti $.

+0

La cosa più facile da fare sarà quello di ricorrere solo l'array o (forse meglio) Indice è da id e quindi utilizzare i tasti $ per ciclo attraverso di essa. – Corbin

+1

possibile duplicato di [Come mantenere l'ordine usando SELECT WHERE IN()?] (Http://stackoverflow.com/questions/2813884/how-do-you-keep-the-order-using-select-where- in) –

+0

Wow! Non ho mai saputo che la funzione esiste. >. < – Corbin

risposta

9

Puoi provare questo.

SELECT * FROM tableName WHERE id in (4, 1, 7, 8, 2, 5, 6) order by find_in_set(id, '4, 1, 7, 8, 2, 5, 6'); 
+0

Sì, funziona! Grazie mille. Non l'ho mai saputo prima. – Thavarith

Problemi correlati