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

    [MYSQL] Cercare due o più valori su più campi

    Ciao a tutti, chiedo cortesemente se qualcuno riesce a darmi una dritta:

    ho una tabella, con 5 campi, contenente dei valori, ad esempio:

    campo 1 valore x25, campo due valore x50, campo 3 valore x10, campo 4 valore x33, campo 5 valore 44

    e così via per n° records. Non è possibile che su una riga siano presenti valori uguali, ad esempio se campo 1=x25, sicuramente gli altri campi non potranno mai assumere x25.

    se volessi fare una query, del tipo:

    selezionami tutti i record che hanno almeno un valore = a x25 oppure = a x10 come potrei tradurla in sql?

    grazie mille

  2. #2
    Quote Originariamente inviata da attiliobs Visualizza il messaggio
    se volessi fare una query, del tipo:

    selezionami tutti i record che hanno almeno un valore = a x25 oppure = a x10 come potrei tradurla in sql?

    grazie mille
    SELECT campi
    FROM tabella
    WHERE valore = x25 or valore = x10
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  3. #3
    credo che sia un po' più faticoso

    SELECT campi
    FROM tabella
    WHERE campo1='x10' OR campo1='x25' OR campo2='x10' OR campo2='x25' .... OR campoN='x10' OR campoN='x25'

  4. #4
    grazie a entrambi, mi sono espresso male nel formulare la domanda, a me servirebbe:
    selezionami tutti i record che hanno almeno un valore = a x25 e = a x10 come potrei tradurla in sql?

  5. #5
    Quote Originariamente inviata da attiliobs Visualizza il messaggio
    grazie a entrambi, mi sono espresso male nel formulare la domanda, a me servirebbe:
    selezionami tutti i record che hanno almeno un valore = a x25 e = a x10 come potrei tradurla in sql?
    UN valore NON può essere contemporaneamente x10 E x25

    perché non fai un esempio? grassssie

  6. #6
    Puoi provare una cosa del genere:

    codice:
    SELECT CONCAT(campo1, campo2, campo3, campo4, campo5) AS value HAVING value LIKE "%x25%" OR value LIKE "%x10%"
    ma piu' probabilmente andrebbe rivista la struttura dal database

  7. #7
    Grazie ragazzi, k.b direi che la tua soluzione di concatenare i campi mi è molto utile, a proposito della struttura del db come avresti gestito i vari campi?

    grazie

  8. #8
    Optime, innanzitutto grazie, un esempio è:

    voglio sapere in quante righe compaiono i valori x25 e x10 a prescindere se sono nel campo1 o campo2 o ....campon.

    un altro esempio:
    la tabella contiene 5 records strutturati così:
    riga1: campo1->"x10", campo2->"", campo3->"", campo4->"x25"->campo5->"";
    riga2: campo1->"", campo2->"", campo3->"x10", campo4->""->campo5->"";
    riga3: campo1->"", campo2->"", campo3->"x10", campo4->""->campo5->"x25";
    riga4: campo1->"", campo2->"", campo3->"", campo4->""->campo5->"x25";
    riga5:campo1->"", campo2->"x10", campo3->"x25", campo4->""->campo5->"";

    select tutte le righe che contengono sia x10 che x25, il risultato dovrebbe essere 3 righe

    la riga1,riga3 e riga5

    grazie mille

  9. #9
    In genere se ti capita di dover fare una ricerca su un campo OPPURE su un altro OPPURE su un altro etc, la cosa migliore e' togliere questi campi dalla tabella principale ed inserire i valori in un'altra tabella.

    In pratica invece di una tabella "articoli" con campi:
    id
    <altri campi articolo>
    nota1
    nota2
    nota3
    nota4

    fai due tabelle, una tabella "articoli" con solo:
    id
    <altri campi articolo>

    e una tabella "note" con:
    id
    id_articolo (riferito all'id dell'altra tabella)
    nota

    in questo modo la ricerca e' molto piu' immediata con una semplice join

  10. #10
    Grazie K.b.

    Il tuo metodo comunque di concatenamento direi che mi ha autato parecchio, grazie mille per il supporto.

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.