Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en 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 04/06/2007, 16h55   #1
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 167
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : avril 2006
Messages : 167
Points : 33
Points : 33
Envoyer un message via MSN à pigpen
Par défaut comparer int et string

Bonjour tout le monde

j'ai vuq ue sous MySQL il y avait une fonction de cast ...
mais je n'arrive pas à la faire fonctionner ..

mon problème est simple je voudrait comparer un int avec un like "%expr%"

des idées ??


merci d'avance
pigpen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2007, 17h27   #2
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 423
Points : 6 423
Bonjour,
Il faut faire :
Code :
1
2
3
SELECT...
FROM...
WHERE cast(colonne_int AS char(...)) LIKE...
La longueur du char dépend de la longueur maximale de l'entier à comparer.

Attention, ceci ne marche que depuis Mysql 4.0.6;

ced
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2007, 17h37   #3
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 167
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : avril 2006
Messages : 167
Points : 33
Points : 33
Envoyer un message via MSN à pigpen
ca ne semble pas fonctionner

est ce que je peut mettre une taille enorme ??

merci de ta reponse
pigpen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2007, 17h48   #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 423
Points : 6 423
Essaie en retirant la longueur dans char :
Code :
1
2
3
SELECT...
FROM...
WHERE cast(colonne_int AS CHAR) LIKE...
ced
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 00h00   #5
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 167
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : avril 2006
Messages : 167
Points : 33
Points : 33
Envoyer un message via MSN à pigpen
merci de ton attention

malheureusement ca ne fonctionne pas non plus ...
pigpen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 09h41   #6
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 423
Points : 6 423
Bizarre , moi je viens de le tester et ça fonctionne...
Quelle version de MySQL utilises-tu ?

ced
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 11h42   #7
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 167
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : avril 2006
Messages : 167
Points : 33
Points : 33
Envoyer un message via MSN à pigpen
Bonjour,

j'utilise mysql 5
pigpen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 11h51   #8
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 423
Points : 6 423
On peut voir la requête ?

ced
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 13h11   #9
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 167
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : avril 2006
Messages : 167
Points : 33
Points : 33
Envoyer un message via MSN à pigpen
oui bien sur

SELECT * FROM inscription , adherent
where inscription.adherent_id_adherent = id_adherent
and (adherent.nom_adherent like "%con%"
or adherent.prenom_adherent like "%je%"
or adherent.num_licence like "%jeur%"
and cast(inscription.id_inscription as char) like "%"
)
pigpen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 13h49   #10
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 423
Points : 6 423
Deux petites remarques, pour être sûr de bien comprendre ton problème :
1/ C'est voulu le dernier AND dans la parenthèse où il n'y a que des OR ?
2/ Un like "%" sans rien avant ou après le %, c'est plutôt étrange (j'ai jamais essayé, mais je pense que ça ramène tout, et donc la condition ne sert plus à rien).

ced
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 14h07   #11
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 167
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : avril 2006
Messages : 167
Points : 33
Points : 33
Envoyer un message via MSN à pigpen
Le and est voulu ...

mettre juste %, effectivement ca ramene tout, mais c'était ici le but ... c'était pour tester justement ce cast()
pigpen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 16h55   #12
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 423
Points : 6 423
Ben là, à part un problème dans la requête, je vois plus trop bien
Mais sans le schéma et quelques données, c'est dur à dire, pour voir ce que ramène effectivement la requête...
Pourtant, le CAST marche correctement...

ced
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 16h58   #13
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 167
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : avril 2006
Messages : 167
Points : 33
Points : 33
Envoyer un message via MSN à pigpen
enfin le problème n'ets pas a ce quil me ramene ou non , c'est surtt qu'il n'accecpte paos cette syntaxe

pourrais tu me faire un requete bidon avec une syntaxe qui marche chez toi ?

merci de ton aide
pigpen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 17h33   #14
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 423
Points : 6 423
Voilà une table de test :
id ; num ; texte
1 ; 1; 'texte1'
2 ; 2; 'texte2'
...
14; 14; 'texte14'
id et num sont de type integer, et texte du varchar.

Voilà un exemple de requête bidon :
Code :
SELECT * FROM table1 WHERE cast(num AS char) LIKE '1%'
Ca le renvoit les lignes dont les num sont 1, 10, 11, 12, 13 et 14.

Ca fonctionne sans soucis sous MySQL 5 pour moi aussi.

ced
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h43.


 
 
 
 
Partenaires

Hébergement Web