Menu

Chercher une adresse IP dans un champs

hiba - 6 mars 2018 à 13:45 - Dernière réponse : Reivax962 3233 Messages postés jeudi 16 juin 2005Date d'inscription 20 juin 2018 Dernière intervention
- 6 mars 2018 à 16:23
bonjour
je cherche un code SQL qui permet d'extraire une adresse IP dans un champ d'une table ensuite verifier si cette adresse existe dans un autre champs d'une autre table
la premiere table est serveur qui contient le champ message de type varchar ( contient une chaine et une adresse ip)
la deuxieme table est adresse qui contient un champ ip de type varchar(15) ( contient seulement des adresses ip)
je veux extraire l'adresse existante dans le champ message du table serveur sachant que je ne connais pas la position de debut et de verifier si elle existe dans le champ ip du table adresse.
merci de m'aider.
Afficher la suite 

Votre réponse

3 réponses

Reivax962 3233 Messages postés jeudi 16 juin 2005Date d'inscription 20 juin 2018 Dernière intervention - 6 mars 2018 à 15:31
0
Merci
Bonjour,

Est-ce que tu pourrais connaître sa position par rapport à un délimiteur ? Par exemple, après la 4ème espace, ou point-virgule, ou autre... Auquel cas tu peux tenter la fonction SUBSTRING_INDEX.

Parce qu'extraire une partie d'un champ n'est pas du tout évident en MySQL.

Il serait plus facile de trouver tous les messages qui n'ont pas une IP listée dans adresse, ou tous les messages correspondant à une IP donnée...

Sinon, si les performances ne sont pas un problème, tu peux le faire "à la main" avec un langage de script comme Php, qui récupère tout, cherche l'IP, et regarde dans Adresse...

Xavier
comment alors determiner tous les messages qui contient une adresse qui n'est pas existante dans adresse c'est à dire trouver tous les messages qui n'ont pas une IP listée dans adresse, ou tous les messages correspondant à une IP donnée...
Reivax962 3233 Messages postés jeudi 16 juin 2005Date d'inscription 20 juin 2018 Dernière intervention - 6 mars 2018 à 16:23
Si ça te convient, tu peux faire :

-> Tous les messages correspondant à une IP donnée :
SELECT * FROM serveur WHERE message LIKE '%192.168.0.1%'


-> Tous les messages dont l'IP n'est pas dans la table adresse
SELECT s.*
FROM serveur s
LEFT OUTER JOIN adresse a ON s.message LIKE CONCAT('%', a.ip, '%')
WHERE a.ip IS NULL


Xavier
Commenter la réponse de Reivax962