- Home
- Categorie
- Coding e Sistemistica
- PHP
- Una query che non mi riesce...
-
Una query che non mi riesce...
Salve gente, ricorro al vostro aiuto per un problema al quale non riesco a venire a capo.
Vorrei sostanzialmente che la select mi estraesse tutti i record dove compare il valore 5.
Quindi...SELECT
proto.protocolloID,
proto.A_P,
proto.estensione,
FROM
proto
WHERE
(proto.estensione = 5)e il codice restituisce correttamente tutti i record che sono valorizzati a 5 nel campo proto.estensione.
Il mio problema è che nel campo proto.estensione i valori presenti possono essere anche + di uno, ad esempio:
opz.1) su record 1 il valore del campo proto.estensione è pari a 5 ( unico valore )
opz.2) su record 2 il valore del campo proto.estensione è pari a 3 e 5 ( cioe' due valori distinti) in questa modalità : 3,5
opz.3) su record 3 il valore del campo proto.estensione è pari a 3,5 e 9 ( cioe' tre valori distinti) in questa modalità 3,5,9
opz.4) su record 4 il valore del campo proto.estensione è pari a 3,5,15 ecc.Come posso operare se volessi quindi estrarre i records dove compare il valore 5 relativamente alle opzioni
n. 1 2 e 3.Ho provato l'operatore Like ma i risultati non sono precisi.
Like o = 5 mi restituisce solo i record dove esiste un solo valore pari a 5
Like %5 mi restituisce sia 5 che 15
Like 5% mi restituisce sia 5 che 50Spero di essere stato chiaro... un ringraziamento a tutti.
-
Ciao brostin,potresti fare così:
Mettiamo che il risultato della query estratta sia contenuto in $res.
[php]
<?
$res=explode(",",$res);
if (in_array(5,$res)){
// istruzione se è presente il 5
}
else{// istruzione da svolgere in caso il 5 non sia presente
}
[/php]
Ciao!
-
Puoi fare:
proto.estensione = '5' OR proto.estensione LIKE '5,%' OR proto.estensione LIKE '%,5' OR proto.estensione LIKE '%,5,%'Ossia o è 5 o inizia per 5, o finisce per ,5 o è ,5,