sto cercando di utilizzare questo tipo di query
Codice PHP:
SELECT DISTINCT codice, (@rownum:=@rownum+1) FROM `articoli`, (SELECT @rownum:=0) AS r WHERE figlio='0' AND (@rownum:=@rownum+1) != CAST(codice AS UNSIGNED) ORDER BY codice*1 ASC
time: 0.5secondi
solo che riscontro dei problemi.
@rownum viene "associato" alla riga prima di essere ordinata, quindi mi risulta come incrementale 12616 quando so che il primo numero disponibile è 16717
ho modificato la query in questo modo
Codice PHP:
SELECT codice, (@rownum:=@rownum+1) FROM (SELECT DISTINCT codice, figlio FROM articoli ORDER BY codice*1 ASC) AS c, (SELECT @rownum:=0) AS r WHERE figlio='0' AND @rownum != CAST(codice AS UNSIGNED)
time: 2.4 secondi (meglio di 11.6 della query con il join)
solo che in questo caso , @rownum è sempre diverso da codice anche se a video vedo 1 1