[MySQL] update avec rand()

update avec rand() [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 27-05-2008 à 10:21:08    

bonjour,
 
je dois absolument faire un update d'une colonne aléatoirement, mais sachant que l'update n'accepte pas la fonction rand() j'ai essayé cette requête qui ne marche pas..
 
UPDATE Table SET ColumnX = NewValue
WHERE PrimaryKey = (
SELECT PrimaryKey FROM Table
WHERE ColumnX = OldValue
AND ColumnY = Value
ORDER BY RAND()  
LIMIT 10
)
 
j'ai ce msg d'erreur : #1093 - You can't specify target table TABLE for update in FROM clause  
 
 
 
avez-vous une solution à part écrire un script ? merci d'avance :)

Reply

Marsh Posté le 27-05-2008 à 10:21:08   

Reply

Marsh Posté le 28-05-2008 à 11:58:16    

Et si tu faisais plutôt un truc dans le genre, en passant par php :
 
 - Tu fais un mysql_num_rows de ta table pour savoir le nombre d'enregistrements
 - Tu généres un chiffre aléatoire avec php (ou autre d'ailleurs) inférieur ou égal au nombre d'enregistrements
 - Tu fais une requête du type UPDATE ... WHERE mon_id = 'chiffre_aleatoire'
 
Je pense que ça revient au même, et te simplifiera la vie... Non ? :)
 
Edit : arf pardon j'avais pas lu le "à part écrire un script ?"... Désolé !
Pourquoi tu veux pas écrire de script ? ça me paraît assez court à faire, non ?


Message édité par clemdups le 28-05-2008 à 12:00:59
Reply

Marsh Posté le 28-05-2008 à 13:05:54    

je sais très bien que c'est super simple à faire mais comme j'ai actuellement accès qu'à phpmyadmin et que c'est urgent j'ai pas trop le choix :sweat:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed