Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Query MySQL per ricercare solo un termine

    Ciao a tutti,

    in una pagina ho dei campi che applicano dei filtri alla visualizzazione di alcuni record.

    Tra gli altri filtri ho una select denominata "Incaricato".

    Nel database pratiche ho un campo "incaricato" il quale, per esempio, si compone con:
    "id_incaricato1/id_incaricato2/id_incaricato_3"
    e nella pratica ho qualcosa simile a:
    "1/2/3"

    Detto questo, esiste un qualche operatore o funzione MYSQL che mi consenta di ricercare solo i record che nel campo incaricato contengano (tra gli altri o unicamente) l'id dell'addetto selezionato dalla select?

    Spero di essere stato chiaro,
    grazie a tutti!

  2. #2
    una tabella con campi che contengono valori multipli e' una tabella errata. La caratteristica di un database DBMS e' proprio quella di contenere valori atomici.

    Dovresti avere una tabella "incaricati", una tabella pratiche che riporta l'id_incaricato. Se gli incaricati possono essere piu' di uno allora servira' una terza tabella che "unisca" le pratiche agli incaricati.

    tab unione
    id_unione id_pratica id_incaricato

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

  3. #3
    Ok, grazie del consiglio...Ho modificato e creato la nuova tabella.

    Ora, ti volevo chiedere un ulteriore aiuto..

    Lo schema della mia tabella è:

    id | id_pratica | id_addetto | data


    e un esempio di dati inseriti è:

    1 | 10 | 3 | 2010-02-09
    2 | 10 | 2 | 2010-02-11
    3 | 10 | 1 | 2010-02-11

    Ora, io vorrei estrarre solamente i due(o più) record con la data più recente (quindi il 2 ed il 3) e che ovviamente sono rappresentativi dello stesso id_pratica.

    Come dovrei fare?

  4. #4
    se il numero dei record da estrarre e' fissato a 2 oppure a 3 basta order by + limit

    tua select
    order by data desc
    limit 2 oppure 3

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

  5. #5
    Eh purtroppo non so preventivamente quanti record saranno, potrebbero essere 2 come 5 o 6 o anche 1 solo...

  6. #6
    mi permetto un uppettino

  7. #7
    Credo che Piero intendesse il numero di record che vuoi vedere.
    Se il numero limite sarà sempre uguale allora basta indicarlo come LIMIT 2 (o il numero limite che vuoi),
    altrimenti dovresti farti un form che salva un cookie a lunga scadenza o un campo nel database con il numero che vuoi e poi, dopo che lo assegni ad una variabile, lo puoi richiamare nel limit:
    Codice PHP:
    ...query LIMIT '$numeroscelto"); 

  8. #8
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Originariamente inviato da Pepo06
    Ok, grazie del consiglio...Ho modificato e creato la nuova tabella.

    Ora, ti volevo chiedere un ulteriore aiuto..

    Lo schema della mia tabella è:

    id | id_pratica | id_addetto | data


    e un esempio di dati inseriti è:

    1 | 10 | 3 | 2010-02-09
    2 | 10 | 2 | 2010-02-11
    3 | 10 | 1 | 2010-02-11

    Ora, io vorrei estrarre solamente i due(o più) record con la data più recente (quindi il 2 ed il 3) e che ovviamente sono rappresentativi dello stesso id_pratica.

    Come dovrei fare?
    codice:
    select * from tabella where id_pratica=10 and data=(select max(data) from tabella where id_pratica =10)
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  9. #9
    Giusto! Mi ero dimenticato della domanda sulla stessa pratica!

  10. #10
    Ok, alla fine della fiera credo di avercela fatta!!!

    Grazie mille a te, dottwatson ed a piero per i preziosi consigli ed aiuti

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