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

Requêtes MySQL Discussion :

Faire un < sur une chaine de caractère


Sujet :

Requêtes MySQL

  1. #1
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut Faire un < sur une chaine de caractère
    Il est possible de faire un ORDER BY sur une chaine de caractère.
    Est il possible de faire
    `img_url` < "'Bacacp.jpg'"
    dans une requête pour avoir l'image suivante

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    salut,

    cela va te faire des comparaisons sur les chaines de caractères. donc cette syntaxe devrait fonctionner
    Après qu'appelles tu image suivante? sur quel critère tu te bases?

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Si la colonne `img_url` contient par exemple 'abc.jpg', votre opération logique donnera un résultat. Mais elle retiendra toutes les url qui sont alphabétiquement placées avant 'Bacacp.jpg' et pas seulement celle placée immédiatement avant.

    Mais définir une 'image suivante' n'a pas de sens en SQL sauf à définir un critère de classement basé par exemple sur un horodatage ou une numérotation séquentielle.

  4. #4
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    Citation Envoyé par Cybher Voir le message
    salut,

    cela va te faire des comparaisons sur les chaines de caractères. donc cette syntaxe devrait fonctionner
    Après qu'appelles tu image suivante? sur quel critère tu te bases?

    Les images ont des noms totalement aléatoire, par exemple :
    - 1215443-068CA00A000005DC-257_964x642.jpg
    - 123892925719.jpg
    - place-de-opera_940x705.jpg
    - 007y.jpg

    J'aimerias les trier dans l'ordre 0..., puie 121..., 123..., place...


    Citation Envoyé par CinePhil Voir le message
    Si la colonne `img_url` contient par exemple 'abc.jpg', votre opération logique donnera un résultat. Mais elle retiendra toutes les url qui sont alphabétiquement placées avant 'Bacacp.jpg' et pas seulement celle placée immédiatement avant.

    Mais définir une 'image suivante' n'a pas de sens en SQL sauf à définir un critère de classement basé par exemple sur un horodatage ou une numérotation séquentielle.
    Un LIMIT 1 aurait du résoudre le problème, mais il me dit que la requête ne renvois pas de résultat.
    Avant je définissait l'image suivante comme celle ayant l'id suivant (numéro unique dans la table)

  5. #5
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    pas de résultat?
    tu peux nous mettre un petit jeu d'essai pour qu'on puisse reproduire le problème?

    Merci

  6. #6
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    Requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT `img_id`, `img_page`, `img_type`, `img_stype`, `img_sstype`, `img_ssstype`, `img_url` 
    FROM `site_galerie_image` 
    WHERE `img_page`="Capture" 
      AND `img_type`="Fun" 
      AND `img_stype`="2009.09.18"   
      AND `img_url` < "273867d56590bd23997b21c07def138.jpg" 
    ORDER BY `img_url` 
    LIMIT 1
    Résultat :
    MySQL returned an empty result set (i.e. zero rows). (Query took 0.0003 sec)

  7. #7
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    ce qu'il nous faudrait, c'est aussi le code de création de la table, quelque insert et le résultat que tu attends afin qu'on puisse reproduire le problème

  8. #8
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Normalement, on ne met pas les valeurs textuelles entre guillemets mais entre apostrophes.

    Existe t-il vraiment dans la table une image répondant aux critères ?

  9. #9
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Normalement, on ne met pas les valeurs textuelles entre guillemets mais entre apostrophes.

    Existe t-il vraiment dans la table une image répondant aux critères ?
    Gratz, ta gagné .... honte sur moi.


    Pour info :

    Table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    CREATE TABLE `site_galerie_image` (
      `img_id` int(11) NOT NULL auto_increment,
      `img_date` datetime NOT NULL default '0000-00-00 00:00:00',
      `img_date_m` datetime NOT NULL,
      `img_page` varchar(254) collate utf8_bin NOT NULL,
      `img_type` varchar(254) collate utf8_bin NOT NULL,
      `img_stype` varchar(254) collate utf8_bin NOT NULL,
      `img_sstype` varchar(254) collate utf8_bin NOT NULL,
      `img_ssstype` varchar(254) collate utf8_bin NOT NULL,
      `img_nom` varchar(255) collate utf8_bin NOT NULL default '',
      `img_url` varchar(254) collate utf8_bin NOT NULL default '',
      `img_url_m` varchar(254) collate utf8_bin NOT NULL default '',
      `img_hauteur` int(9) NOT NULL,
      `img_largeur` int(9) NOT NULL,
      `img_auteur` varchar(254) collate utf8_bin NOT NULL default '',
      `img_source` varchar(254) collate utf8_bin NOT NULL default '',
      `img_com` text collate utf8_bin NOT NULL,
      `img_visu` int(9) NOT NULL default '0',
      PRIMARY KEY  (`img_id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_bin PACK_KEYS=0 AUTO_INCREMENT=8 ;
    Données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    INSERT INTO `site_galerie_image` (`img_id`, `img_date`, `img_date_m`, `img_page`, `img_type`, `img_stype`, `img_sstype`, `img_ssstype`, `img_nom`, `img_url`, `img_url_m`, `img_hauteur`, `img_largeur`, `img_auteur`, `img_source`, `img_com`, `img_visu`) VALUES 
    (1, '2009-09-28 16:25:47', '2009-09-28 16:25:47', 0x43617074757265, 0x46756e, 0x323030392e30392e3138, '', '', '', 0x343938646335343734626366393133306131356164613032373932336365376232316436373931332e6a706567, 0x343938646335343734626366393133306131356164613032373932336365376232316436373931332e74682e6a706567, 100, 125, 0x4269646f75, 0x6269646f752e626464, '', 3),
    (2, '2009-09-28 16:25:47', '2009-09-28 16:25:47', 0x43617074757265, 0x46756e, 0x323030392e30392e3138, '', '', '', 0x39626266626238613266613937383538633831343063373264326532372e6a7067, 0x39626266626238613266613937383538633831343063373264326532372e74682e6a7067, 100, 125, 0x4269646f75, 0x6269646f752e626464, '', 1),
    (4, '2009-09-28 16:32:51', '2009-09-28 16:32:51', 0x43617074757265, 0x46756e, 0x323030392e30392e3138, '', '', '', 0x3435313338346271736c68686a6937716132322e676966, 0x3435313338346271736c68686a6937716132322e74682e676966, 100, 125, 0x4269646f75, 0x6269646f752e626464, '', 0),
    (5, '2009-09-29 11:20:00', '2009-09-29 11:20:00', 0x43617074757265, 0x46756e, 0x323030392e30392e3138, '', '', '', 0x323733383637643536353930626432333939376232316330376465663133382e6a7067, 0x323733383637643536353930626432333939376232316330376465663133382e74682e6a7067, 100, 125, 0x4269646f75, 0x6269646f752e626464, '', 11),
    (6, '2009-09-29 11:21:04', '2009-09-29 11:21:04', 0x43617074757265, 0x46756e, 0x323030392e30392e3138, '', '', '', 0x65467965642e6a7067, 0x65467965642e74682e6a7067, 100, 125, 0x4269646f75, 0x6269646f752e626464, '', 0),
    (7, '2009-09-29 11:34:50', '2009-09-29 11:34:50', 0x43617074757265, 0x46756e, 0x323030392e30392e3138, '', '', '', 0x343933353939356c672e6a7067, 0x343933353939356c672e74682e6a7067, 100, 125, 0x4269646f75, 0x6269646f752e626464, '', 0);
    Requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT `img_id`, `img_page`, `img_type`, `img_stype`, `img_sstype`, `img_ssstype`, `img_url` FROM `site_galerie_image` WHERE `img_page`="Capture" AND `img_type`="Fun" AND `img_stype`="2009.09.18" AND `img_url` < "451384bqslhhji7qa22.gif" ORDER BY `img_url` LIMIT 1
    Ca fonctionne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/11/2012, 11h23
  2. Test sur une chaine de caractéres
    Par Je-cherche-pfe dans le forum C#
    Réponses: 3
    Dernier message: 04/09/2007, 23h44
  3. prèlèvements sur une chaine de caractères
    Par Nicobp dans le forum Langage
    Réponses: 2
    Dernier message: 11/10/2006, 01h14
  4. Comment faire un explode sur une chaine comme suit ?
    Par sebnutt dans le forum Langage
    Réponses: 3
    Dernier message: 07/06/2006, 11h59
  5. Dégradé sur une chaine de caractères avec 3 a 4 couleurs
    Par avogadro dans le forum Composants VCL
    Réponses: 6
    Dernier message: 31/03/2006, 13h21

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