Ho dei dubbi,
Tu sei in multiutenza e con la procedura che ho abbozzato
dovresti modificare dei valori in tabella,
ma per chiamate contemporanee potresti avere delle rogne
perche tutti andrebbero a leggere e modificare gli stessi campi
poi la procedura in MySql io non sono capace a farla,
la ho abbozzata in VBA solo per buttare li una ipotesi
Aggiungiamo alla nostra tabella 2 campi:
Nnn numerico che è il contatore delle "uscite"
Fff Testo che è una specie di Flag che identifica i tuoi 10 record estratti
Idx chiaramente è la sua Key numerica
La procedura MySql potrebbe essere composta da 2 query
1°)
Reimposta a Vuoto i 10 record che erano stati identificati nella estrazione precedente
........ Execute ("UPDATE T1 Set T1.Fff = '' WHERE LunghezzaStringa(T1.Fff)>0;")
2°)
Immagina di estrarre i primi 10 record ordinati per Nnn e per Random
SELECT TOP 10 T1.Nnn, T1.Fff FROM T1 ORDER BY T1.Nnn, Rnd([T1.Idx])
quelli sono i tuoi record pescati e innanzitutto gli fai un UPDATE
per incrementare di 1 il campo Nnn
e per mettere un Flag nel campo Fff
quindi:
.... dbex.Execute ("UPDATE
(SELECT TOP 10 T1.Nnn, T1.Fff FROM T1 ORDER BY T1.Nnn, Rnd([T1.Idx])) AS V1
SET V1.Nnn = (If IsNull(V1.Nnn) Then 1 Else V1.Nnn End)+1, V1.Fff = 'x';")
3°)
Adesso con php puoi estrarre i tuoi 10 record che contrassegnati con la "x"
SELECT Campo1, Campo2, CampoEccetera FROM T1 WHERE T1.Fff = 'x';
Ti ripeto prendila solo come idea poi la devi adattare al tuo contesto
.