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 :

Requête Select Compliquée


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Requête Select Compliquée
    J'ai la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT 
    gs.tracker Date,
    gs.lat V1,gs.lng V2,
    gs.param->"$.io1" Var3
    FROM objects g,objects_data_352848020302291 gs WHERE g.name='4000'
    AND gs.tracker BETWEEN '2020-07-23 10:15:14' AND '2020-07-23 10:59:04' ;
    Le résultat est : Nom : c01.PNG
Affichages : 105
Taille : 20,2 Ko

    J'ai besoin d'extraire a travers cette requête seulement les valeurs qui sont coloré en jeune :

    Merci d'avance pour vous aides.

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 561
    Points
    38 561
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Pour extraire des lignes particulières, il faut que celles-ci correspondent à un certain critère, quel est ce critère, comment reconnaitre ces lignes parmi les autres ?

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Bonjour ,
    Merci pour votre retour.
    Le critère :
    La 1ier ligne : c'est le 1ier valeur dont Var3=1
    La 2ime ligne : c'est le 1ier valeur dont Var3 devient égale à zéro
    La 3ime ligne : c'est le 1ier valeur dont Var3 devient égale à 1
    La 3ime ligne : c'est le 1ier valeur dont Var3 devient égale à zéro ......

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 064
    Points
    19 064
    Par défaut
    Salut lemjid.

    Plus simplement, le critère est sur la rupture de séquence de la colonne "var3".

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    --------------
    START TRANSACTION
    --------------
     
    --------------
    set session collation_connection = "latin1_general_ci"
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE IF NOT EXISTS `base`
            DEFAULT CHARACTER SET `latin1`
            DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `test`
    --------------
     
    --------------
    CREATE TABLE `test`
    ( `id`     integer unsigned NOT NULL auto_increment primary key,
      `var3`   integer unsigned NOT NULL
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    INSERT INTO `test` (`var3`) VALUES
      (0),(0),(0),(1),(1),(1),(0),(0),(0),(0),(1),(1),(1),(0),(0),(0),(0),(0)
    --------------
     
    --------------
    select * from `test`
    --------------
     
    +----+------+
    | id | var3 |
    +----+------+
    |  1 |    0 |
    |  2 |    0 |
    |  3 |    0 |
    |  4 |    1 |
    |  5 |    1 |
    |  6 |    1 |
    |  7 |    0 |
    |  8 |    0 |
    |  9 |    0 |
    | 10 |    0 |
    | 11 |    1 |
    | 12 |    1 |
    | 13 |    1 |
    | 14 |    0 |
    | 15 |    0 |
    | 16 |    0 |
    | 17 |    0 |
    | 18 |    0 |
    +----+------+
    --------------
    SELECT  id, var3
      FROM  (  SELECT  @i:=if (var3<>@p,1,0) as test,
                       @p:=var3              as var3,
                       id                    as id
                 FROM  (    select *
                              from `test`
                          order by id
                       )  as x
           CROSS JOIN  (  SELECT @i:=0,@p:=''  ) as y
            ) as z
     WHERE  test = 1
    --------------
     
    +----+------+
    | id | var3 |
    +----+------+
    |  4 |    1 |
    |  7 |    0 |
    | 11 |    1 |
    | 14 |    0 |
    +----+------+
    --------------
    COMMIT
    --------------
     
    Appuyez sur une touche pour continuer...
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 577
    Points
    52 577
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par lemjid Voir le message
    ...
    J'ai besoin d'extraire a travers cette requête seulement les valeurs qui sont coloré en jeune :
    Ce serait peut être plus simples, si les valeurs étaient colorées en vieux !!!!

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

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

Discussions similaires

  1. Requête Select un peu compliquée
    Par Manbiz dans le forum Développement
    Réponses: 7
    Dernier message: 01/02/2017, 09h19
  2. Résultat commençant par un chiffre avec requête SELECT
    Par nicolas.pissard dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/04/2010, 13h31
  3. Insertion multiple à base de sous requête SELECT
    Par drinkmilk dans le forum Langage SQL
    Réponses: 8
    Dernier message: 14/04/2005, 16h34
  4. SQL Server 7.0 - Requête Select
    Par sangokus dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 23/03/2004, 10h32
  5. Optimisations mysql sur les requêtes SELECT: index
    Par leo'z dans le forum Débuter
    Réponses: 2
    Dernier message: 29/11/2003, 13h23

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