MariaDB 5.5'te bir boolean döndüren kullanıcı tanımlı bir işlev udf
var. Beklediğim gibi,Hiçbir satır beklenmedik şekilde üretilmiyor NOT
select c, count(*)
from (
select fld, count(*)c
from tbl
where udf(fld)
group by fld
) t
group by c;
+---+----------+
| c | count(*) |
+---+----------+
| 1 | 12345 |
| 2 | 1234 |
| 3 | 123 |
| 4 | 12 |
| 5 | 1 |
+---+----------+
5 rows in set (26.75 sec)
Aynı şekilde, şu bana (sadece yukarıdaki tablodan) numarayı 12345
verir:
select anotherfield, count(*)
from tbl
where udf(fld)
and fld in (
select fld from (
select fld,count(*)c
from tbl
group by fld
having c=1
)t
)
group by anotherfield with rollup;
isterim
şu beklediğim bana ne verir aşağıdaki da bana 12345
vereceğini bekliyoruz:
select anotherfield, count(*)
from tbl
where udf(fld)
and fld not in (
select fld from (
select fld,count(*)c
from tbl
group by fld
having c>1
)t
)
group by anotherfield with rollup;
H çünkü, bana hiç satır vermiyor. Niye ya?
teşekkür ederiz. Ve bunu bile biliyordum ... sadece bir şekilde bu davada kararıyordu. +1. – msh210