IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

LIKE avec type "int"


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut LIKE avec type "int"
    Bonjour à tous. Voici mon souci et ma question:

    Je développe un programme en php et j'aimerais pouvoir lister toutes mes factures qui ont pour N° de facture le(s) chiffre(s) rentré(s) par l'utilisateur. Pour bien me faire comprendre à quoi pourrait ressembler ma requête SQL:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT machin, machin 
    FROM ma_table
    WHERE nofacture like mavariable%
    Est-il possible d'utiliser "LIKE" sachant que mon ° de facture est un entier ? Y a-t-il une technique sinon pour faire cela ?? Merci d'avance de votre aide

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 58
    Points : 61
    Points
    61
    Par défaut
    Salut

    utilise une conversion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT machin, machin 
    FROM ma_table
    WHERE convert(varchar(20),nofacture) LIKE mavariable%
    @+

  3. #3
    say
    say est déconnecté
    Membre expérimenté
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 300
    Points
    1 300
    Par défaut
    bjr,

    personnellement, je travaille sous PostGreSQL..et ça ne pose pas de problème, même pas besoin de convertir.

    as tu essayé?
    Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain)
    _ _ _ _ _ _ _ _ _

    La planète ne nous appartient pas, elle nous a été prêtée par nos enfants
    _ _ _ _ _ _ _ _ _

    Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 58
    Points : 61
    Points
    61
    Par défaut
    Salut,

    Moi sur ma version de Sybase je suis obligé de convertir.

    En fait "CONVERT" convertit le type de ta colonne actuelle en un autre type. Sur Sybase je ne peux pas faire de like sur un nombre sinon je me fais jeter donc je lui demande de le convertir en chaîne de caractère.

    convert ( type, colonne)

    @+

  5. #5
    say
    say est déconnecté
    Membre expérimenté
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 300
    Points
    1 300
    Par défaut
    re,

    tu travailles sur quel SGBD?
    ça a son importance...l'exemple de infosteph est pour sysbase..
    sous pgsql, je ferais autrement.

    par ailleurs, , , devrait t'orienter
    Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain)
    _ _ _ _ _ _ _ _ _

    La planète ne nous appartient pas, elle nous a été prêtée par nos enfants
    _ _ _ _ _ _ _ _ _

    Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Tout d'abord merci pour votre aide.

    Pour ce qui est utilisé PostgrSQL cela ne va pas être possible car je travaille sur un MCD sous MYSQL qui n'est pas le mien et je n'ai pas le choix.

    Je vous poste mon formulaire PHP et ma requête SQL qui en découle pour voir si ce n'est pas moi qui est fait une erreur dans mon codage:

    Formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <table>
    <tr>
    <form method='post' action=''>
    <td> Entrer un n° de facture : </td> <td valign='bottom'> 
    <input type='text' name='id_facture' size='15'> 
    <td> 
    <input type='submit' value='envoyer'> 
    </td>
    </form>
    </tr> 
    </table>
    L'utilisateur rentre par exemple "165".

    Requête SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if(isset($_POST['id_facture']) and !empty($_POST['id_facture']))
    {
    	$id_facture= $_POST['id_facture'];
     
    $requete = mysql_query("select * from facture,frais,ligne_frais,vol,avion,detailsfrais,entreprise 
    where facture.idfacture=detailsfrais.idfacture 
    and detailsfrais.idlignefrais=ligne_frais.idlignefrais 
    and ligne_frais.idvol=vol.idvol 
    and vol.idavion=avion.idavion 
    and detailsfrais.idfrais=frais.idfrais 
    and vol.identreprise=entreprise.identreprise 
    and IDFACTURE  like '$id_facture%' order by IDFACTURE");

    Al 'exécution j'ai le droit à ce message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\GED\recherche_par_facture.php on line 65
    Donc une erreur dans ma requête ....

    Sinon pourriez-vous m'en dire plus sur l'utilisation de convert svp. Merci

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 58
    Points : 61
    Points
    61
    Par défaut
    Sinon pourriez-vous m'en dire plus sur l'utilisation de convert svp. Merci
    http://www.ianywhere.com/developer/p...9/00000145.htm

    @+

  8. #8
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut,

    juste par curiosité, tu dois faire un like pour quelle raison ?
    Comme tu utilises un "préfixe" pour la recherche, il y a surement moyen de régler ton problème de manière "calculatoire" sur les entiers...

    Peux-tu donner un exemple concret, ou la règle de formatage des numéros de facture (puisque j'imagine que c'est en utilisant celle-ci que tu fais ta recherche) ?

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

Discussions similaires

  1. utilisation de "LIKE" avec un type datetime dans r
    Par ericmart dans le forum Langage SQL
    Réponses: 8
    Dernier message: 06/11/2003, 14h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo