Comment faire cette requette mysql
18 messages
• Page 1 sur 2 • 1, 2
- doom
- WRInaute discret

- Messages: 155
- Inscription: 21 Déc 2003
Comment faire cette requette mysql
salut,
voilà, je possède une table mysql avec 3 champs, que l'on va noter idi ch1 , ch2 et ch3
Et j'ai envie en fet de faire une requête qui supprime une insertion quand il y a 2 insertions dont les champs ch1 et ch2 sont identiques
exemple :
On a ça :
et je veux une requête pour obtenir ça :
Libre choix de supprimer une des 2 au hasard des insertions identiques.
Voilà, je vous remercie d'avance de votre aide!
DooM
voilà, je possède une table mysql avec 3 champs, que l'on va noter idi ch1 , ch2 et ch3
Et j'ai envie en fet de faire une requête qui supprime une insertion quand il y a 2 insertions dont les champs ch1 et ch2 sont identiques
exemple :
On a ça :
- Code: Tout sélectionner
ch1 | ch2 | ch3
----------------------
toto | bibi | juju
toto | bibi | bobo
toto | bobo | juju
et je veux une requête pour obtenir ça :
- Code: Tout sélectionner
ch1 | ch2 | ch3
----------------------
toto | bibi | bobo
toto | bobo | juju
Libre choix de supprimer une des 2 au hasard des insertions identiques.
Voilà, je vous remercie d'avance de votre aide!
DooM
- doom
- WRInaute discret

- Messages: 155
- Inscription: 21 Déc 2003
maintenant je cherche a pouvoir comptabiliser combien j'obtient de resultats différents pour un même ch1, exemple :
ce qui nous donne 2 résultats différents pour un meme ch1.
Après, il me faut soumettre dans une autre table ce chiffre 2 pour le ch1='toto'
vous avez une idée, ?
- Code: Tout sélectionner
ch1 | ch2 | ch3
----------------------
toto | bibi | bobo
toto | bobo | juju
ce qui nous donne 2 résultats différents pour un meme ch1.
Après, il me faut soumettre dans une autre table ce chiffre 2 pour le ch1='toto'
vous avez une idée, ?
-

reglysse - WRInaute discret

- Messages: 150
- Inscription: 19 Avr 2006
Bien vu Sir Dipp !
Alors si tu peux pas faire de requête imbriqué il va falloir faire des tables temporaires :
CREATE TEMPORARY TABLE table_temp (ch1 varchar(20), ch2 varchar(20), ch3 varchar(20));
INSERT INTO table_temp SELECT ch1, ch2, max(ch3) as ch3 FROM test GROUP BY ch1, ch2;
SELECT count(ch1) as NB, ch1 FROM table_temp GROUP BY ch1;
DROP TABLE table_temp;
Avec le php :
Alors si tu peux pas faire de requête imbriqué il va falloir faire des tables temporaires :
CREATE TEMPORARY TABLE table_temp (ch1 varchar(20), ch2 varchar(20), ch3 varchar(20));
INSERT INTO table_temp SELECT ch1, ch2, max(ch3) as ch3 FROM test GROUP BY ch1, ch2;
SELECT count(ch1) as NB, ch1 FROM table_temp GROUP BY ch1;
DROP TABLE table_temp;
Avec le php :
- Code: Tout sélectionner
$strSQL = "CREATE TEMPORARY TABLE table_temp (ch1 varchar(20), ch2 varchar(20), ch3 varchar(20));";
mysql_query($strSQL);
$strSQL = "INSERT INTO table_temp SELECT ch1, ch2, max(ch3) as ch3 FROM test GROUP BY ch1, ch2;";
mysql_query($strSQL);
$strSQL = "SELECT count(ch1) as NB, ch1 FROM table_temp GROUP BY ch1;";
$result = mysql_query($strSQL);
while ($row = mysql_fetch_array ($result)) {
echo $row["NB"]." | ".$row["ch1"]."<br />";
}
$strSQL = "DROP TABLE table_temp;";
mysql_query($strSQL);
- doom
- WRInaute discret

- Messages: 155
- Inscription: 21 Déc 2003
merci pr votre aide;
il me dit : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/web/site/tmp.php on line 15
(ligne 15 : while ($row = mysql_fetch_array ($result)) { )
il me dit : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/web/site/tmp.php on line 15
(ligne 15 : while ($row = mysql_fetch_array ($result)) { )
Dernière édition par doom le Mer Nov 01, 2006 12:15, édité 1 fois.
- doom
- WRInaute discret

- Messages: 155
- Inscription: 21 Déc 2003
- Code: Tout sélectionner
// on se connecte a la base
$db = mysql_connect('localhost', '****', '****') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('****',$db) or die('Erreur de selection '.mysql_error());
$strSQL = "CREATE TEMPORARY TABLE table_temp (id varchar(20), ip varchar(20), date varchar(20));";
mysql_query($strSQL);
$strSQL = "INSERT INTO table_temp SELECT id, ip, max(date) as date FROM rech_ip GROUP BY id, ip;";
mysql_query($strSQL);
$strSQL = "SELECT count(id) as NB, id FROM table_temp GROUP BY id;";
$result = mysql_query($strSQL);
while ($row = mysql_fetch_array ($result)) {
echo $row["NB"]." | ".$row["id"]."<br />";
}
$strSQL = "DROP TABLE table_temp;";
mysql_query($strSQL);
-

reglysse - WRInaute discret

- Messages: 150
- Inscription: 19 Avr 2006
Tu as un champ date que tu veux inserer dans un varchar, c'est peut-etre ça.
Remplace cette ligne :
$strSQL = "CREATE TEMPORARY TABLE table_temp (id varchar(20), ip varchar(20), date varchar(20));";
Par :
$strSQL = "CREATE TEMPORARY TABLE table_temp (id varchar(20), ip varchar(20), date date);";
Remplace cette ligne :
$strSQL = "CREATE TEMPORARY TABLE table_temp (id varchar(20), ip varchar(20), date varchar(20));";
Par :
$strSQL = "CREATE TEMPORARY TABLE table_temp (id varchar(20), ip varchar(20), date date);";
18 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
- generateur de requette mysql
- requette supprimer les doublons mysql
- [Réglé]Requette MySql avec date
- Aide avec une requette Mysql
- [Résolu] Requette Mysql : Top de la semaine
- Probleme requette mysql - Help SVP ! [Résolu]
- Cherche a optimiser une requette MySQL SVP
- MySQL : Requette des timestamp dans les 7 prochains jours
- Comment procéder connexion Mysql?
- [mysql] Comment rendre LIKE pertinent ?
- Gestion des langues et des sessions en PHP / MySQL - 02-05-2004
- Passage à l'heure d'été/hiver sur un forum phpBB - 31-10-2010
- Script de mise en cache des pages (PHP MySQL) - 09-08-2010
- AdSense Tracking : statistiques détaillées sur les clics AdSense - 29-02-2004
- GoogleStats : analyse temps réel des visites de Google sur votre site - 02-10-2002
- Sortie officielle de GoogleStats v2.0 ! - 23-02-2003
- Le WRInaute du moment - 24-10-2006
- Les différents systèmes de mise en cache des données - 16-08-2010
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

