Newsgroup: it.comp.lang.visual-basic
Titolo: Query MySQL / Ottenere Numero di risultati

Ciao a tutti, ho provato a fare una ricerca su google e sul sito comune 
ma non ho saputo trarre informazioni utili per il mio problema.
Ho interfacciato un'applicazione ad un database MySql. Ho una tabella 
articoli dalla quale devo estrapolare, mediante query, alcuni articoli e 
il numero di ricorrenze. In altre parole ho:
*ID*-*Nome_Articolo*
1 maglia di lana
2 maglia di cotone
3 giubbotto
4 jeans
Se vado a cercare 'maglia, vorrei che mi desse un recordset con maglia 
di lana e maglia di cotone, in più il numero di ricorrenze che in questo 
caso è due. La query che utilizzo è questa
"SELECT *, COUNT(*) as ricorrenze FROM negozio_articoli WHERE 
Nome_Articolo LIKE '%maglia%' GROUP BY ID"
La query funziona ma il campo Ricorrenze al posto di essere 2 è sempre 
uno. Il recordset è
*ID*-* Nome_Articolo*-*Ricorrenze*
1 Maglia Di Lana 1
2 Maglia Di Cotone 1
Cosa posso fare?
Grazie

 questo caso è due.
Spiegati meglio.
Tu vuoi che in un recordset (che ha una struttura che possiamo definire 
'tabellare'), ci siano n record che soddisfano il tuo criterio, e poi vuoi 
anche che in questa 'tabella' ci sia un numero che ti indica il conteggio 
dei record.
Mi sembra chiaro che qualcosa non vada.
Puoi comunque estrarre i record con una semplice "select * from tabella 
where campo like '%pippo%'", e poi leggerti il RecordCount dal recordset in 
VB.
Oppure, se vuoi addentrarti discretamente nell'universo Sql, puoi effettuare 
un Union:
Select ID, Campo
From Tabella
Where Campo like '%pippo%'
Union All
Select ID=0, Campo=Cast(
    (
    Select count(1)
    From Tabella
    Where Campo like '%pippo%'
    )
    as Char)
Ma secondo me ti incasini ancora di più.
Ciao
Alberto
-- 
E tutto mi sembrava andasse bene... 

Fabrizio ha scritto:

Puoi fare un "select count(distinct Nome_Articolo) from negozio_articoli 
where Nome_Articolo like '%maglia%'".
Ciao.

 2 Maglia Di Cotone 1
Puoi anche usare:
Select 
A.ID
, A.Nome_Articolo, Ricorrenze=
    (
    Select count(1)
    From Tabella as B
    Where B.Nome_Articolo Like '%maglia%'
    )
From Tabella As A
Where A.Nome_Articolo Like '%maglia%'
Ma non ho idea di che senso possa avere, mettendo il conteggio a fianco di 
ogni singolo record estratto.
Ciao
Alberto
-- 
E non so se avrò gli amici a farmi il coro,
o se avrò soltanto volti sconosciuti,
canterò le mia canzoni a tutti loro
e alla fine della strada
potrò dire che i miei giorni li ho vissuti 

Ciao, grazie per le risposte... Effettivamente avrei voluto fare come ha 
suggerito Albe V° ma è un pò dura :)
Ho risolto, spero che possa essere d'aiuto a qualcun altro lanciando due 
query. Non uso recordset.recordcount perchè qualsiasi restituisca la 
query mi da sempre -1
In una prima query faccio un COUNT(*)
SELECT COUNT(*) as ricorrenze FROM tabella WHERE condizioni
quindi, controllo se ho riscontri
if rs("ricorrenze") = 0 then
	codice per nessuna ricorrenza
	esco
end if
se ho riscontri lancio la seconda query
SELECT * FROM tabella WHERE condizioni
Volevo ringraziarvi comunque, pensavo si potesse fare il tutto con una 
query semplice :) grazie

 query mi da sempre -1
Con mysql devi usare il comando recordset.connection.recordsaffected
Ciao.