Visualizzazione dei risultati da 1 a 7 su 7

Discussione: query select

  1. #1

    query select

    Ciao a tutti, faccio una query di questo tipo:

    SELECT * FROM tabella WHERE campo1='valore1' OR campo2='valore2' OR campo3='valore3' ORDER BY id ASC;

    supponiamo di ottenere 10 righe come risultato della query..

    come faccio a sapere per quali campi è stata soddisfatta la query?

    solo il campo1?!? campo2 e campo 3?!? tutti e tre?!?

    spero di essere stato chiaro..

    grazie a tutti per l'aiuto!
    aquatimer2000

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2000
    residenza
    Edinburgh
    Messaggi
    401
    Mi vengono in mente 2 soluzioni:

    1) controlli a posteriori in PHP
    2) Usi qualcosa tipo:
    SELECT (campo1=xxx) AS val1, (campo2=yyy) AS val2, (campo3=zzz) AS val3, etc FROM tabella WHERE etc etc

  3. #3
    A me invece viene in mente di dirti: ma sei proprio sicuro che una select di questo genere sia proprio la soluzione migliore per il tuo script???
    Senza offese, ma quella serie di OR mi sembra siano li più per comodo (in un altro modo la query non funziona) che per un vero e proprio utilizzo pratico.

    Spiegaci magari la struttura della tabella e cosa vorresti ottenere con una query del genre.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  4. #4
    i campi interessati sono:

    nome
    cognome
    codicefiscale


    e comunque scusate.. ho scritto male... la ricerca viene fatta

    SELECT * FROM tabella WHERE campo1 LIKE '%valore1%' OR campo2 LIKE '%valore2%' OR campo3 LIKE '%valore3%' ORDER BY id ASC;

    e nei campi di solito è scritto una parte di campo
    aquatimer2000

  5. #5
    Mi sembrava strana la query!
    Ad ogni modo... piuttosto che andare a scrivere una serie di OR, suppongo che questo sia uno script per una sorta di motore di ricerca avanzato, quindi presenterai agli utenti una form con diversi campi che possono essere anche lasciati vuoti.
    Ti propongo di andare a filtrare quali campi sono stati compilati e quindi aggiungere alla query SQL solo le stringhe relative a quel campo.

    Se non capisci cosa intendo, allora posta lo script che stampa la form di ricerca a video.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  6. #6
    esatto la query viene eseguita in seguito ad una form di un motore di ricerca.

    è un motore di ricerca che serve a me per verificare alcuni dati inseriti nel database.
    qualche volta qualche campo può essere vuoto, ma non sempre ... anzi !
    nella maggior parte dei casi i campi sono tutti con dei valori
    aquatimer2000

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    A livello puramente teorico dovrebbe essere una cosa di questo tipo:

    codice:
    select campo1,campo2,...,campoN,
    if(campo1 like '%qualcosa%',1,0) as Match_campo1,
    if(campo2 like '%qualcosa%',1,0) as Match_campo2,
    ........
    from tabella where campo1 like '%qualcosa%'
     or campo2 like '%qualcosa%'......
    non ho idea delle performance di una query del genere.

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.