Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012

    [mysql] problema MATCH AGAINST

    la query incriminata è questa
    codice:
    SELECT       c.ID                          AS ID,
                              c.Codice                      AS codice,
                              c.Username                    AS username,
                              c.Indice_Azienda_Privato      AS tipologia,
                              c.Ragione_Sociale             AS ragione_sociale,
                              CONCAT(c.Nome,' ',c.Cognome)  AS nome_cognome,
                              c.Contatto                    AS contatto,
                              c.Provincia                   AS provincia,
                              c.Sconto                      AS sconto,
                              c.Abilitato                   AS abilitato,
                              c.data_reg                    AS data_reg,
                              n.nome                        AS nazione                        
                                                      
                              ,MATCH(c.Codice,                   
                                 c.Username,
                                 c.Indice_Azienda_Privato,      
                                 c.Ragione_Sociale,             
                                 CONCAT(c.Nome,' ',c.Cognome),  
                                 c.Contatto,                    
                                 c.Zona,                        
                                 c.Provincia,                   
                                 c.Sconto ,                     
                                 c.Abilitato,                   
                                 c.data_reg ,                   
                                 n.nome) AGAINST('*pippo*' IN BOOLEAN MODE) AS attinenza 
                  FROM        clienti               AS c
                  LEFT JOIN   nazioni               AS n 
                  ON          c.Zona=n.iso
                  WHERE       c.Codice != '000000'
                   AND  MATCH(c.Codice,
                                      c.Username,                 
                                      c.Indice_Azienda_Privato,  
                                      c.Ragione_Sociale ,         
                                      CONCAT(c.Nome,' ',c.Cognome),
                                      c.Contatto,                
                                      c.Zona,                 
                                      c.Provincia,                
                                      c.Sconto,                
                                      c.Abilitato,                 
                                      c.data_reg       ,             
                                      n.nome) AGAINST('*pippo*' IN BOOLEAN MODE)  ORDER BY c.Codice ASC
    e l'errore è questo
    codice:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CONCAT(c.Nome,' ',c.Cognome),  
                                 c.Contatto,        ' at line 18
    concat ???
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  2. #2
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    L'errore è restituito dallo script php o viene restituito anche lanciando la query da phpmyadmin?

  3. #3
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    in entrambi i casi.... sono su MySQL 4.1.8-standard
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  4. #4
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Hai provato a rimuovere temporaneamente
    Codice PHP:
    CONCAT(c.Nome,' ',c.Cognome)  AS nome_cognome 
    dai 2 match?
    Giusto per vedere se l'errore c'è ancora o al limite se cambia.

  5. #5
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    sinceramente no, non che non ci abbai pensato, ma mi sembra limitante in un aquery di ricerca non poter utilizzare CONCAT in un match, soprattutto perchè essendo una query e non codice bisogna che alcune istruzioni base non vadano in conflitto.. poi magari è un bug e ci può stare, ma non credo assolutamente ne di essere il primo, ne l'unico e nemmeno l'ultimo ad ultilizzarl in quella situazione ...
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  6. #6
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ma hai provato ad eseguire la query solo per prova sul phpmyadmin tralasciando quella parte? E' solo un test per comprendere da cosa può derivare l'errore.

  7. #7
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    purtroppo no, domani mattina in ufficio provo a farlo... ti farò sapere subito

    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  8. #8
    Originariamente inviato da dottwatson
    sinceramente no, non che non ci abbai pensato, ma mi sembra limitante in un aquery di ricerca non poter utilizzare CONCAT in un match, soprattutto perchè essendo una query e non codice bisogna che alcune istruzioni base non vadano in conflitto.. poi magari è un bug e ci può stare, ma non credo assolutamente ne di essere il primo, ne l'unico e nemmeno l'ultimo ad ultilizzarl in quella situazione ...
    concat e' una funzione. In match ci vogliono solo campi.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    si, alla fine era il CONCAT che bloccava la query...

    ho visto che la cosa era stat segnalata agli sviluppatori di Mysql e sicuramente la mai versione rientre in quelle affette dal bug
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  10. #10
    Originariamente inviato da dottwatson
    si, alla fine era il CONCAT che bloccava la query...

    ho visto che la cosa era stat segnalata agli sviluppatori di Mysql e sicuramente la mai versione rientre in quelle affette dal bug
    per me non e' un bug. Se MATCH vuole un campo devi passare un campo e non una stringa come quella che viene generata da concat()

    Basta che tu aggiunga il campo c.nome e c.cognome nel MATCH. A che ti serve il concat.

    Tra l'altro una query come quella in boolean mode (che non necessita dell'indice fulltext) per cercare *pippo* potrebbe essere un tantino pesante. tanto varrebbe usare LIKE %pippo%

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.