Friday 15 June 2012

sql - How do I get number of results (rows) in MySQL? -



sql - How do I get number of results (rows) in MySQL? -

normally query below gives me 1 result (row).

select `s`.`firma_unvani` `firma_unvani`, `s`.`recno` `recno`, `s`.`bolge` `bolge`, `s`.`bolge_no` `bolge_no`, `s`.`durum` `durum`, l.ilce, il.sehir, count(i.recno) number_of_works `servisler` `s` left bring together kullanici k on (s.bolge = k.kullanici) left bring together kullanici_cihaz kc on (k.recno = kc.kul_recno) left bring together servisler_ilceler c on (s.recno = c.ser_recno) inner bring together ilce l on (l.recno = c.ilce_recno) inner bring together il on (il.id = l.ilid) left bring together isemri on ( i.bolge = s.bolge_no , i.`servis_durumu` = 1 ) 1 = 1 grouping s.bolge order is_sayisi limit 0, 15

i 1 result

+----------------+-------+------+---------+------+-----+----------+-----------------+ |firma_unvani |recno |bolge |bolge_no |durum |ilce | sehir | number_of_works | +----------------+-------+------+---------+------+-----+----------+-----------------+ |pirana |2501 |tekkt |58 |-1 |nt |istanbul |1428 | +----------------+-------+------+---------+------+-----+----------+-----------------+

here key recno.

i want count results:

select count(0) _count `servisler` `s` left bring together kullanici k on (s.bolge = k.kullanici) left bring together kullanici_cihaz kc on (k.recno = kc.kul_recno) left bring together servisler_ilceler c on (s.recno = c.ser_recno) inner bring together ilce l on (l.recno = c.ilce_recno) inner bring together il on (il.id = l.ilid) left bring together isemri on ( i.bolge = s.bolge_no , i.`servis_durumu` = 1 ) 1 = 1 grouping s.bolge

and wired result:

1428

it supposed 1. isn't it?

the result fine, since counting 0 every row instead of i.recno, hence both resulting in 1428.

to count number of results, wrap whole query resultcount:

select count(*) resultcount ( select `s`.`firma_unvani` `firma_unvani`, `s`.`recno` `recno`, `s`.`bolge` `bolge`, `s`.`bolge_no` `bolge_no`, `s`.`durum` `durum`, l.ilce, il.sehir, count(i.recno) number_of_works `servisler` `s` left bring together kullanici k on (s.bolge = k.kullanici) left bring together kullanici_cihaz kc on (k.recno = kc.kul_recno) left bring together servisler_ilceler c on (s.recno = c.ser_recno) inner bring together ilce l on (l.recno = c.ilce_recno) inner bring together il on (il.id = l.ilid) left bring together isemri on ( i.bolge = s.bolge_no , i.`servis_durumu` = 1 ) grouping s.bolge order is_sayisi limit 0, 15) temp

also note, where 1=1 not necessary.

mysql sql

No comments:

Post a Comment