Comment faire cette requette mysql
18 messages • Page 1 sur 2 • 1, 2
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
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
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, ?
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);
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.
- 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);
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
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Gestion des langues et des sessions en PHP / MySQL
- Passage à l'heure d'été/hiver sur un forum phpBB
- AdSense Tracking : statistiques détaillées sur les clics AdSense
- GoogleStats : analyse temps réel des visites de Google sur votre site
- Sortie officielle de GoogleStats v2.0 !
- Le WRInaute du moment
- Interview Wikio : transcript du chat WebRankInfo
- Googlebot, le robot d'indexation de Google
- Comment être numéro 1 sur Google ?
- Nouvelle étude de WebRankInfo : les mots-clés et le référencement
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités




le forum