Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    [mysql] problema con concat_ws() e group_concat(). Come ottengo un campo + lungo?

    Buongiorno, quella qui sotto è una porzione di una query piuttosto lunga che ho scritto
    codice:
    select distinct group_concat( x separator '~' ) as conc, nk from (
      select
        concat_ws( '|',
            if( length(title) is null,'',title ),
            if( length(subtitle) is null,'',subtitle ),
            if( length(introtext) is null,'',introtext ),
            if( length(imagepath) is null,'',imagepath ),
            if( length(link) is null,'',link ),
            if( length(link_display) is null,'',link_display )
        ) as x,
        namekey as nk
      from managers m
      inner join managers_to_ss t on ( m.namekey = t.managers_namekey )
      inner join ss s on ( t.ss_id = s.id )
      where s.published = 1 and s.flagdirectory &2
    ) as video_inner2
    group by nk
    La query funziona bene. L'unico problema è che concatenando delle colonne e righe con dei separatori, la striunga finale viene spezzata a 255 caratteri.
    Per allungare il campo ho provato anche con cast( field as char(9999) ) ma senza successo.
    Qualcuno sa dirmi come ottenere un campo più lungo?? :master:
    わさび

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Se non ricordo male 255 è il limite dei char, prova con text

  3. #3
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da luca200
    Se non ricordo male 255 è il limite dei char, prova con text
    Lo so però purtroppo con CAST() posso specificare solo char come parametro di stringa... che tu sappia c'è un altro modo per specificare che il campo deve essere di tipo text?
    わさび

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    azz è vero... la vedo grigia allora

  5. #5
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    hmm... eppure ci deve essere un sistema. qualcuno sa come ovviare?
    わさび

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Mi sono un po' documentato.
    Sulla riga (quindi su ogni singola CONCAT_WS) mi sa che ci sia poco da fare, mentre sulla GROUP_CONCAT il limite dovrebbe essere dato da una variabile del server: group_concat_max_len

    prova ad eseguire questo prima della tua query

    SET group_concat_max_len = 8192

  7. #7
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da luca200
    Mi sono un po' documentato.
    Sulla riga (quindi su ogni singola CONCAT_WS) mi sa che ci sia poco da fare, mentre sulla GROUP_CONCAT il limite dovrebbe essere dato da una variabile del server: group_concat_max_len

    prova ad eseguire questo prima della tua query
    Grazie infinite per l'aiuto. Dunque, il comando me lo da, e mi ritorna 0 rows affected, quindi ok... ma comunque il testo viene troncato e non sono riuscito ad ovviare.
    Devo inventarmi qualche stratagemma.

    Il problema è che ho centinaia di righe contenenti nominativi. Ogni nominativo è chiave unica. Qualcuno di loro, molti pochi, hanno delle cose associate. Per cui selezionare i nominativi e poi per ogniuno di loro fare una select per vedere le cose associate mi sembrava uno spreco di risorse... perciò avevo deciso di mettermi in un campo solo per chi ha i dati, tutte le colonne e righe compresse (concatenate)... ma se c'è il limite di lunghezza è una strada inutile.
    Forse a questo punto devo mettermi un check 'true', 'false', e poi solo per chi ha 'true' eseguo la query interna per tirare fuori le cose associate...
    わさび

  8. #8
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    queste sono le tabelle
    codice:
    +-------+   +------------------+
    | TAB1  |   | MANAGER_TO_SS    |
    +-------+   +------------------+   +-------+
    |ID     |   |ID                |   | SS    |
    |MANAGER| > |ID_MANAGER        |   +-------+ 
    +-------+   |ID_SS             | > | ID    |
                +------------------+   | SS    |
                                       +-------+
    Tab1 è quella più popolata. Le altre due contengono i dati aggiuntivi...
    わさび

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.