Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/08/2011, 14h53   #1
Membre du Club
 
Inscription : juillet 2009
Messages : 209
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 209
Points : 53
Points : 53
Par défaut recherche dans une table

Bonjour

Je veux faire une requête qui va parcourir la même table pour vérifier si il existe un champ qui est répétitif. Je m'explique

J'ai une table, voilà son code
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
CREATE TABLE `connections` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`user_id` INT(11) NOT NULL,
	`created` DATETIME NULL DEFAULT NULL,
	`ip` VARCHAR(45) NULL DEFAULT NULL,
	`geolocalisation` TEXT NULL,
	`mac` TEXT NULL,
	PRIMARY KEY (`id`),
	INDEX `fk_connections_users1` (`user_id`),
	CONSTRAINT `fk_connections_users1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON UPDATE NO ACTION ON DELETE NO ACTION
)
J'ai un nouvel enregistrement. Je vais l'ajouter dans la base. Mais juste après la fin de l’opération, je veux balayer toute ma table pour voir si il existe un autre id_user qui as la même adresse ip dans ma table, dans la dernière heure passée.

Cordialement
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement.
Le français n'est pas ma langue maternelle, désolé pour les éventuelles fautes.
ryodo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 17h05   #2
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
Ce genre de requête peut vous aider

Code :
1
2
3
4
5
6
7
8
9
10
11
12
SELECT user_id
FROM connections c1
WHERE
	EXISTS 
		(SELECT 
			1 
		 FROM 
			connections c2
		 WHERE 
  			c2.user_id<>c2.user_id
			AND TIMEDIFF (c2.created,c1.created)<=1)
	AND TIMEDIFF( CURRENDATE, c1.created)<=1
A tester et à adapter

Bon courage
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/08/2011, 18h29   #3
Membre du Club
 
Inscription : juillet 2009
Messages : 209
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 209
Points : 53
Points : 53
Par défaut Grand Merci

Merci pour le code mais je n’arrive pas à le faire fonctionner.

Il me donne cette erreur :

Code :
1
2
 
FUNCTION games.TIMEDIFF does NOT exist //games c'est le nom de ma base
Merci une autre fois
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement.
Le français n'est pas ma langue maternelle, désolé pour les éventuelles fautes.
ryodo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 16h40   #4
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 437
Points : 6 437
Enlève l'espace qui se situe derrière le premier TIMEDIFF... Il ne faut pas d'espace entre le nom de la fonction et la parenthèse ouvrante.
__________________
Rédacteur / Modérateur SGBD
Mes tutoriels et la FAQ MySQL

----------------------------------------------------
Pensez aux balises code et au tag
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
ced est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h25.


 
 
 
 
Partenaires

Hébergement Web