Page 1 sur 1
update where et RAND()
Posté : 17 févr. 2015, 23:37
par surfys
Bonjour tout le monde,
Je fais un petit site et je voudrais faire un update avec un where et rand(), le where ne s'applique pas ex:
$sql="UPDATE ma_table SET champ =''info' WHERE champ >50 ORDER BY RAND() LIMIT 100";
merci d'avance pour l'aide
Re: update where et RAND()
Posté : 17 févr. 2015, 23:45
par tof73
si cela ressemble à la vraie requête, le fait que champ soit une fois une chaine, et une fois un entier, peut aboutir à des résultats inattendus.
Re: update where et RAND()
Posté : 18 févr. 2015, 00:16
par surfys
Ce qui se passe c'est que le where ne s'applique pas et je vois pas comment l'imbriquer...
j'ai essayé comme ça mais il y a une erreur
$sql="UPDATE matable SET mon_champ ='info' WHERE mon_champ IN ( SELECT mon_champ > 50 FROM ma_table ORDER BY rand() LIMIT 100 )";
Re: update where et RAND()
Posté : 18 févr. 2015, 10:17
par sirakawa
Bjr,
Quelle est la structure de la table ?
ET
Donne un exemple de son contenu.
Re: update where et RAND()
Posté : 18 févr. 2015, 23:58
par surfys
Bonsoir merci pour le coup de main
la table un petit bout...
CREATE TABLE IF NOT EXISTS `produits_combinaison` (
`id` float NOT NULL AUTO_INCREMENT,
`top_ventes` varchar(6) NOT NULL,
`Código` varchar(15) DEFAULT NULL,
`Categoria` varchar(87) DEFAULT NULL,
`Nombre` varchar(89) DEFAULT NULL,
`Atributo1` varchar(40) DEFAULT NULL,
`Atributo2` varchar(30) DEFAULT NULL,
`Detalle` varchar(3844) DEFAULT NULL,
J'arrive a faire un update au hasard du champs Atributo1 limité à 100, mais j'arrive pas a lui indiquer de le faire dans la mesure ou le champ "Stock" vaut "Si"
ça doit etre tout simple mais j'ai pas de message d'erreur et ça fait un update dans n'importe quel champs autre que "Stock"
voila
Re: update where et RAND()
Posté : 20 févr. 2015, 18:16
par Ryle
Ta sous requête contient une erreur, le > 50 (si tant est qu'il soit à conserver) devrait être dans une condition where et non dans le select :
UPDATE matable SET mon_champ ='info'
WHERE mon_champ IN (
SELECT mon_champ FROM ma_table
WHERE mon_champ > 50 -- à confirmer/supprimer en fonction de ton besoin
ORDER BY rand()
LIMIT 100
)
Re: update where et RAND()
Posté : 22 févr. 2015, 16:14
par surfys
Bonjour,
Je reviens u peu tard mais merci pour la réponse
je regarde et je réponds