>>> import re
>>> s="four digits 1234 five digits 56789 six digits 012345"
>>> re.findall(r"\D(\d{5})\D", s)
['56789']
, если они могут произойти в самом начале или в самом конце, проще вставить строку, чем беспорядок со специальными случаями
>>> re.findall(r"\D(\d{5})\D", " "+s+" ")
Причина, по которой вы получаете больше записей, чем ожидаете, заключается в том, что в вашем запросе есть несколько объединений.
Попробуйте следующее. Это должно вернуть вам только:
select seller, group_concat(cid,' :', cnt SEPARATOR ',')
from
(SELECT cases.SELLER, cases_cstm.customerid as cid, COUNT(*) as cnt FROM
cases, cases_cstm WHERE cases.id=cases_cstm.id_c GROUP BY cases.SELLER,
cases_cstm.CUSTOMERID) q
group by seller;
Если вам нужно количество идентификаторов клиентов, вы должны включить count(cid)
в ваше предложение выбора. Надеюсь, это поможет!