Newsgroup: it.comp.lang.visual-basic
Titolo: [Semi OT] Query e LIKE

Salve avrei una mezza OT da proporvi.
Se volessi fare una query ad un DB e chiedere tutti i record in cui (ad 
es.) "Titolo" cominci per una cifra, come potrei fare?
In VB potrei fare:
Dim S as String
[...]
If S Like "[0-9]*" Then ....
Ma in SQL?
Thx in anticipo!
-- 
Nella vita una sola cosa è certa: se la storia ci ha insegnato qualcosa, 
è che si può uccidere chiunque. (Micheal Corleone)

 Thx in anticipo!
Di niente (chi fa da se fa per tre... chi fa in due fa per sei)


 "Select * from _TABELLA_ where Cognome like '[099]%'"
Pardon errore in scrittura :)
Select * from _TABELLA_ where Cognome like "[0-9]%"


> Select * from _TABELLA_ where Cognome like "[0-9]%"
Scusate il popò di post ma ho avuto un abbaglio: in VB con ADO se faccio 
la query tutto funziona... ma da prompt di dos, con MySQL provo a fare 
la stessa query e nn va.
Premetto che la tabella su cui ho provato all'inizio da VB è una tabella 
access. Poi ho aggiunto un record ad un database MySQL e tutto va bene, 
nel senso che se faccio un "Select * ..." mi visualizza tutti i record e 
quello in cui il cognome è "007" compare nell'elenco, quindi c'è.
Se però faccio la query come detto sopra (Like '[0-9]%') non mi 
visualizza niente.
C'è un metodo quindi (STANDARD) per usare un gruppo di lettere/cifre con 
la query?
Thx ancora (e scusate :( )


 
Si', leggersi la guida del _dialetto_ SQL utilizzato!
ciao
	maxx
-- 
NOSPAM: Rimuovere i trattini dallo username!
Cut hyphens from my username!

     maxx
Ciao
     Darkbyte


 
Si' e no.
Esiste un sql standard, ma ce ne sono piu' versioni perche' anche sql e' 
in evoluzione.
Alcuni motori di database hanno anche funzioni non standard.
La sintassi di alcuni comandi e' diversa da db a db.
Un  esempio: top
in access agisce in un certo modo, in sqlserver in un modo leggermente 
diverso, ma significativo, in Mysql o oracle non esiste.
Guarda qui, ad esempio:
http://www.wiscorp.com/SQLStandards.html
e qui:
http://developer.mimer.se/validator/


 in Mysql o oracle non esiste.
Infatti, però esistono metodi analoghi ('limit' per MySQL, e un trucchetto
con 'rownum' per Oracle).
termoPilucco

 
Si', non l'ho scritto, ma non intendevo sminuire questi 2 db ( a memoria 
non ricordavo la sintassi...)


Alla fine per il mio problema ho trovato questa soluzione:
"Select * from _TABELLA_ where cognome between '0' and '9'"
che confronta il primo carattere del campo cognome con '0' e '9'. Quindi 
mi restituisce quello che vorrei io.
Ora qualcuno può confermarmi che sia un proccedimento "abbastanza" 
standard? :)


 > questa non la sapevo, puoi dettagliare?
http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&threadm=b011qk%24k6kks%241%40ID-97197.news.dfncis.de&rnum=1&prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DISO-8859-1%26q%3Demmexx%2Btop%26btnG%3DGoogle%2BSearch%26meta%3Dgroup%253Dit.comp.lang.visual-basic
Urca... è un TOP inteso come classifica, non come numero di risultati.
termoPilucco

 standard? :)
Direi proprio di no. Ma se funziona ... ;-)
Ma quello che c'e' scritto qui non va bene?
http://www.mysql.com/documentation/mysql/bychapter/manual_Tutorial.html#Pattern_matching


 standard? :)
Bé, la sintassi scritta è totalmente ANSI SQL, quindi dovrebbe (va?) 
andar bene per qualunque SQL che supporti ANSI...