Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. [mysql] ordinare in base alla completezza del record
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • M
      mirkoagrati User Attivo • ultima modifica di

      Ciao DarioMarco,
      mi sembra che le strutture condizionali a cui ti riferisci non siano SQL standard.

      Ogni DB ha il suo linguaggio proprietario.

      Penso dovresti fare riferimento ai documenti ufficiali della piattaforma che utilizzi.

      Ciao

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • T
        thedarkita ModSenior • ultima modifica di

        Ciao DarioMarco,

        Fai un if nella query ed incrementi un campo virtuale se il campo non è vuoto, e poi ordini in base a quel numero. Ovviamente se i campi sono tanti ti toccherà fare tanti if.

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • D
          dariomarco User Attivo • ultima modifica di

          Ok, grazie, va già meglio, non è un problema fare tante if 😄
          vorrei chiederti per cortesia se potresti farmi un piccolo esempio, anche con uno/due campi

          grazie, ciao.

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • T
            thedarkita ModSenior • ultima modifica di

            Eccoti un esempio con 2 campi:
            [php]
            SELECT *,if(campo1 != '', 1, 0) AS c1,if(campo2 != '', 1, 0) AS c2 FROM tabella ORDER BY (c1+c2) DESC
            [/php]
            Dovrebbe funzionare.

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • D
              dariomarco User Attivo • ultima modifica di

              OH! finalmente qualcosa di concreto!!! Grazie!!!
              solo che non ho capito una cosa:

              campo1 != '', 1, 0

              campo1 - nome del campo
              1 - assegna un valore
              0 - ???

              Grazie, ciao.

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • T
                thedarkita ModSenior • ultima modifica di

                La sintassi dell if è:
                [php]
                if(condizione, vero, falso)
                [/php]
                Allora come ti dicevo prima è per fare un campo virtuale, il campo sarebbe importanza del record.
                Noi controlliamo se il campo1 non è uguale a niente incrementiamo l'importanza di 1, e quindi nell'ordinamento verrà preso prima degli altri con:
                [php]
                ORDER BY (c1+c2) DESC
                [/php]
                Spero di essere stato chiaro, è più facile a farsi che a dirsi. 😄

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • D
                  dariomarco User Attivo • ultima modifica di

                  Pui dirlo forte!!!
                  Sei stato chiarissimo grazie!!!

                  Ciao.

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • T
                    thedarkita ModSenior • ultima modifica di

                    Figurati.
                    Se hai problemi chiedi pure.

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • D
                      dariomarco User Attivo • ultima modifica di

                      Beh, già che ci sono ne approfitto 😄
                      volevo chiederti: ma se allungo un pò la query, non allungo anche il tempo di esecuzione dell script?

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • T
                        thedarkita ModSenior • ultima modifica di

                        Dipende da come viene "allungata", ovviamente una soluzione del genere dovrebbe impiegare anche più tempo di un altro tipo di ordinamento.
                        Poi bisogna vedere quanti record ci sono nella tabella.

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • D
                          dariomarco User Attivo • ultima modifica di

                          I records sono tanti, ed anche gli if da fare... ma ho provato a testare il tempo di esecuzione su phpmyadmin e comunque si tratta di millesimi di secondi...
                          Questa è un'ottimo pregio di mysql, ma ho visto la documentazione, ed è molto interessante, non si ferma al semplice sql, ma va anche alla creazione di funzioni vere e proprie nonchè ad usare le regExp.
                          Mi chiedevo se esisteva una documentazione anche non ufficiale in italiano.

                          Grazie, ciao.

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • T
                            thedarkita ModSenior • ultima modifica di

                            In italiano c'è poco e niente, purtroppo credo dovrai fare affidamento a testi in inglese.

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            Caricamento altri post
                            Rispondi
                            • Topic risposta
                            Effettua l'accesso per rispondere
                            • Da Vecchi a Nuovi
                            • Da Nuovi a Vecchi
                            • Più Voti