Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    FULLTEXT INDEX per Database access SQL o alternativa

    Ciao a tutti, vorrei sapere se esiste qualcosa che riesce in qualche modo ad utilizzare la funzionalità del FULLTEXT in un database access via SQL, in alternativa, se esiste un modo che permetta di cercare un valore in TUTTI i campi della tabella...
    mi spiego: necessiterei cercare se il valore 5 è presente in alcuni campi di una tabella ma non so come fare...pensavo di fare una query in questo modo:

    SQL = "SELECT * FROM nome_tabella WHERE (campo1, campo2,campo3, campo4, ecc.) = '5' "

    ma non funziona....dove sbaglio?
    Giorgius

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    cosi hai provato (attenzione i numeri non vanno tra apici)
    SQL = "SELECT * FROM nome_tabella WHERE campo1 = 5 or campo2 = 5 or campo3 = 5 or campo4 = 5 "
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    cosi hai provato (attenzione i numeri non vanno tra apici)
    SQL = "SELECT * FROM nome_tabella WHERE campo1 = 5 or campo2 = 5 or campo3 = 5 or campo4 = 5 "
    Non proprio...ho fatto così:
    ...WHERE campo1 OR campo2 OR campo3 OR campo4 = '5'

    ...e funziona...ora non mi resta che capire come fare a visualizzare il nome di quel campo e, appunto, il risultato cercato ad esso collegato...

    response.write (nome_campo_con valore_cercato)

    come posso fare?

    p.s. grazie!
    Giorgius

  4. #4
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    592
    prova con

    SQL = "SELECT * FROM nome_tabella WHERE INSTR(campo1+campo2+campo3+campo4+campon,'5') > 0"
    i campi devono essere alfanumerici.... altrimenti hai perso


    ps per Andrea ...parliamo di ricerca testo naturalmente

    ciao
    Ultima modifica di vic53; 09-10-2014 a 20:13
    Vic53

  5. #5
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    592
    se non funziona con & l'operatore unione di campo1 con campo2 etc bisogna vedere il manuale ACCESS cosa supporta se il + o altro

    SQL = "SELECT * FROM nome_tabella WHERE INSTR(campo1+campo2+campo3+campo4+campon,'5') > 0"
    ciao

    HO VERIFICAto in Access con una tabella clienti unendo cognome e nome e funziona l'operatore +

    quindi la SQL diventa proprio come la seconda che ti ho postato

    ari ciao
    Ultima modifica di vic53; 09-10-2014 a 20:09
    Vic53

  6. #6
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    592
    Quote Originariamente inviata da vic53 Visualizza il messaggio
    prova con



    i campi devono essere alfanumerici.... altrimenti hai perso


    ps per Andrea ...parliamo di ricerca testo naturalmente

    ciao
    un appunto per chi legge

    Naturalmente parlavamo di FULLTEXT su tutti i campi della tabella...
    l'uso di or sui campi del db è una cosa scontata da manuale...

    ciao
    Vic53

  7. #7
    Grazie per le risposte...che vedo solo ora in quanto qui da me a Genova ho purtroppo avuto altro a cui pensare in questo WE...

    Due domande due:
    - esiste on-line un manuale di access SERIO che davvero illustri come risolvere certe situazioni?

    - possibile che per fare quanto sopra devo scrivere il nome di TUTTI i campi interessati? non esiste un modo per far eseguire la query su tutti i campi senza doverli scrivere ad uno a uno? qualcosa tipo *?
    mi sembra perlomeno strano....


    e, importante: come faccio a fare in modo che poi vengano scritti SOLO i risultati in cui quanto richiesto appare? voglio dire: se il valore cercato appare SOLO nel campo N. 2, come faccio a fare un response.write che scriva appunto solo quel campo? devo fare una marea di IF o esiste qualche possiblità che mi sfugge?
    Ultima modifica di giorgius; 13-10-2014 a 09:18
    Giorgius

  8. #8
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    592
    Ti do una indicazione che esiste nei manuali antichi del basic... che puo rispondere alla tua domanda:
    se moltiplichi -1 per un valore -1 questo vale 1... che cosa serve dirai tu ... segui il mio ragionamento ora
    tu hai vari campi tipo campo1, campo2 campo3 campo4... campoN e vuoi scoprire se uno di questi campi vale per esempio "5" in formato testo allora possiamo fare in modo che la matematica ci risolva il tutto con le uguaglianze...

    campo1 diciamo che è il campo indicizzato 1, campo2 è indicizzato da 2 etc etc.

    ora facciamo questa operazione di uguaglianza usando una variabile che chiamiamo x
    x = (campo1="5")
    questa variabile vale -1 se l'uguaglianza è vera, altrimentio vale zero.

    ora facciamo in modo che il risultato della condizione faccia diventare x = al puntatore voluto cioe 1 per il campo 1

    cioè
    x = -1 * (campo1="5")

    vediamo cosa succede per il campo2

    x = -2 *(campo2="5")

    e per campo3
    x = -3 *(campo3="5)

    ora se la condizione e che solo uno dei campi vale "5" possiamo dedure con una sola istruzione il valore del pointer

    x = -1 * (campo1="5") + -2 *(campo2="5") + -3 *(campo3="5) ...

    x varrà 1 , 2 o 3 a seconda che uno di questi campi valga "5" ....

    Be vale la pena fermarsi un attimo per ragionare poi altre strade ma questa è sicuramente una strada percorribile

    naturalmente nel caso che i valori = "5" siano piu di uno vale la pena soffermarsi a come risolvere il quesito....

    se il pointer a 1 lo facciamo valere 1 e il pointer a 2 lo facciamo valere 20 e il poiter a 3 lo facciamo valelre 300 etc, la somma di tutti i campi se tutti i campi sono uguali a "5" varrebbe 321 come vedi la cifra gia ti indicherebbe che sono tutti e tre uguali a "5"

    mentre se il campo1 e il campo3 sono uguali a "5", x sarebbe uguale a 301 ...convieni con me che puo funzionare ?

    Be inutile dilungarci oltre ti auguro buon lavoro

    ciao
    Ultima modifica di vic53; 13-10-2014 a 22:49
    Vic53

  9. #9
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    592
    la seconda risposta alla domanda se esiste un modo per indirizzare i singoli campi della tabella è
    SI...
    tramite in numero del campo associato alla variabile

    per esempio se vuoi stampare i campi della tabella nomi per esempio e sai che sono 10 campi..
    e il recordset aperto è per esempio RS
    puoi usare nel vbscript ASP
    per esempio
    ...
    for i=0 to 9
    response.write(RS(i).name&" = " & RS(i).value)
    next
    ...
    qui ti stampa il nome del campo e il suo valore....

    poi ci sono altre strade --- il mondo è pieno di strade...

    un saluto
    Vic53

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.