Если предположить, что ваши данные следующим образом:
yourtable:
yourfield
John1
John2
John3
Steve1
Steve2
Тогда вы могли бы используйте COUNT
и GROUP BY
в некотором роде:
SELECT
Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(yourfield,'9',''),'8',''),'7',''),'6',''),'5',''),'4',''),'3',''),'2',''),'1',''),'0','') AS NAME,
COUNT(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(yourfield,'9',''),'8',''),'7',''),'6',''),'5',''),'4',''),'3',''),'2',''),'1',''),'0','')) AS NAME_COUNT
FROM yourtable
GROUP BY Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(yourfield,'9',''),'8',''),'7',''),'6',''),'5',''),'4',''),'3',''),'2',''),'1',''),'0','')
Выход:
NAME NAME_COUNT
John 3
Steve 2
SQL Скрипки: http://sqlfiddle.com/#!9/64506f/1/0
С LIKE
:
SELECT
Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(yourfield,'9',''),'8',''),'7',''),'6',''),'5',''),'4',''),'3',''),'2',''),'1',''),'0','') AS NAME,
COUNT(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(yourfield,'9',''),'8',''),'7',''),'6',''),'5',''),'4',''),'3',''),'2',''),'1',''),'0','')) AS NAME_COUNT
FROM yourtable
WHERE yourfield LIKE '%john%'
GROUP BY Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(yourfield,'9',''),'8',''),'7',''),'6',''),'5',''),'4',''),'3',''),'2',''),'1',''),'0','')
В O/P 'Джон 3', 3 это число появления' John'? – Arulkumar
есть. 3 - это число префиксов «Джон». –
Можете ли вы предоставить нам больше информации о вашей таблице и данных? – Philipp