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.
    • 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