Bonjour à tous,
Je suis un débutant de Mysql (les tutos de ce site m’ont bien aidés ) et j’ai un problème pour retranscrire une partie de ma requête que j’avais réalisé avec Access vers Mysql.
Voici la requête en question (Sous Access) :
Exemples de mes tables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT Mid(SERVEUR.SER_IP,1,InStr(8,[SER_IP],'.')-1) AS TEST, SERVEUR.SER_NETBIOS, SERVEUR.SER_IP, agence.agence, agence.id_agence FROM SERVEUR, agence WHERE (((Mid(SERVEUR.SER_IP,1,InStr(8,[SER_IP],'.')-1))=agence.reseau))
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE TABLE Agence (Col1 id_agence PRIMARY KEY, Col2 agence, Col3 ville, Col4 reseau )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 INSERT INTO Agence (COL1, COL2, COL3) VALUES (56, NANTERRE SIEGE, NANTERRE, 11.155.206) INSERT INTO Agence (COL1, COL2, COL3) VALUES (75, PARIS MAINTENANCE, PARIS, 11.155.95)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE TABLE SERVEUR (Col1 id_agence PRIMARY KEY, Col2 SER_NETBIOS Col3 SER_IP )Ce que j’obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 INSERT INTO IPAY (COL1, COL2, COL3) VALUES (56, REZNANTE01, 11.155.206.13 INSERT INTO IPAY (COL1, COL2, COL3) VALUES (75, REZPARIS01, 11.155.95.03
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 -- Le résultat attendu : TEST reseau agence SER_IP id_agence ------ ---------- ------- ------ -------- 11.155.206 REZNANTE01 NANTERRE SIEGE 11.155.206.13 56 11.155.95 REZPARIS01 PARIS MAINTENANCE 11.155.95.03 75 ...
Grâce a cette requête j’arrive à obtenir le Reseau de l’agence grâce a l’IP de 3 octets seulement.
Lorsque j’ai voulu passer cette requête sous MySQL, la fonction INSTR n’était pas la même.
Il fallait que je replace INSTR par POSITION.
J’ai donc testé ma nouvelle requête en local avec phpmyadmin 2.2.6 :
Voila le message d'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT Mid(SERVEUR.SER_IP,1,POSITION(8, SER_IP, '.')-1) AS TEST, SERVEUR.SER_NETBIOS, SERVEUR.SER_IP, agence.agence, agence.id_agence FROM SERVEUR, agence WHERE (((Mid(SERVEUR.SER_IP,1,POSITION(8,[SER_IP],'.')-1))=agence.reseau))";
MySQL a répondu:
Something is wrong in your syntax près de ' SER_IP, '.')-1) AS TEST, SERVEUR.SER_NETBIOS, SERVEUR.SER_IP, a' à la ligne 1
J’en conclu que le problème viens de la fonction POSITION. J’ai beau tester différent type de combinaison ça ne marche toujours pas:/
J’espère que j’ai été assez clair ^^
Merci
Partager