Visualizzazione dei risultati da 1 a 5 su 5

Discussione: MYSQL operatore IN()

  1. #1
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346

    MYSQL operatore IN()

    Ciao,

    dovrei fare in modo che tutti valori compresi nell'operatore IN siano la condizione vera e nn che un solo elemento del IN soddisfi la condizione. Suggerimenti?

    Grazie per le risposte
    Per gli Spartani e Sparta usa spartan Il mio github

  2. #2
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Facci capire...

    Immaginiamo di avere una tabella in cui c'è un campo numerico (immaginiamo sia "numero_civico")

    I record sono

    id numero_civico
    1 12
    2 34
    3 56
    4 9

    Voglio tutti i record che abbiano numero civico IN (12,56,9) e quindi scrivo "select * from tabella where numero_civico IN (12,56,9)" ed ottengo

    id numero_civico
    1 12
    3 56
    4 9

    Cosa intendi per "..tutti valori compresi nell'operatore IN siano la condizione vera..." ?
    Come fa un record (questo è quello che io capisco dalla tua frase "...tutti valori compresi nell'operatore IN siano la condizione vera..." ma forse ho capito male...) a valere contemporaneamente sia 12 che 56 che 9 ?

  3. #3
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Nel pratico, ho 2 tabelle e i valori nel IN() sono id della prima tabella. I records della seconda tabella possono contenere tutti, nessuno o alcuni di questi id.
    Ecco a me servirebbe un IN() che consideri tutti gli id passati e nn solo alcuni.

    codice:
    1	primo
    2 	secondo
    3 	terzo
    4	quarto
    
    seconda tabella
    
    					id della prima tabella
    1	primo2			1,2
    2	secondo2		        1
    3	terzo2			1,2,3
    4	quarto2			3
    5 	quinto2			1,2,3,4
    Cn una select + from tab2 where id_prima IN(1,2,3) dovrei riuscire ad avere

    terzo2 e quinto2 invece ho primo2 secondo2 terzo2 quarto2 e quinto2.

    Spero si capisca.
    Per gli Spartani e Sparta usa spartan Il mio github

  4. #4
    se i campi che evidenzi nella seconda tabella con la , sono racchiusi in un unico campo non riuscirai a trovarli con IN.
    Potresti provare invece l'istruzione like

    esempio:

    select * from tab2 where id_prima like '%1%' or like '%2%' ...

    Considera pero' che cosi' se i numeri superano le 9 unita' avrai 10 che viene intercettato da %1% e cosi' via.

  5. #5
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Ancora non capisco...(non del tutto perlomeno...)
    Quei valori

    1,2
    1
    1,2,3
    3
    1,2,3,4

    dove sono memorizzati ? in un unico campo di tipo char (varchar) ?
    Se vuoi trovare quelli che hanno (almeno) i valori 1,2,3 puoi mettere qualcosa del tipo

    ...where campo like '1,2,3%'

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.