I do not know about MySQL, but after working in Oracle 11g:
With T_PATTERN as (select '%143456%' as PATTERN from DUAL) , T_INPUT as ( select 1 as UUID, 'X143456y' as FIRSTNAME, 'last1' as LASTNAME, 'u143456v' as CITY, 'w143456z' as POSTALCODE from DUAL union select 2 as UUID, 'first2' as FIRSTNAME, 'a143456b' as LASTNAME, 'a143456b' as CITY, 'postal2' as POSTALCODE from DUAL union select 3 as UUID, 'first3' as FIRSTNAME, 'last3' as LASTNAME, 'c143456d' as CITY, 'postal3' as POSTALCODE from DUAL union select 4 as UUID, 'first4' as FIRSTNAME, 'last4' as LASTNAME, 'city4' as CITY, 'postal4' as POSTALCODE from DUAL ), Q_FNAME as ( select TI.UUID, TI.FIRSTNAME, COUNT(*) FN_COUNT from T_INPUT TI inner join T_PATTERN TP on 1=1 where UPPER(TI.FIRSTNAME) like TP.PATTERN GROUP BY TI.UUID, TI.FIRSTNAME ), Q_LNAME as ( select TI.UUID, TI.LASTNAME, COUNT(*) LN_COUNT from T_INPUT TI inner join T_PATTERN TP on 1=1 where UPPER(TI.LASTNAME) like TP.PATTERN group by TI.UUID, TI.LASTNAME ), Q_CITY as ( select TI.UUID, TI.CITY, COUNT(*) CT_COUNT from T_INPUT TI inner join T_PATTERN TP on 1=1 where UPPER(TI.CITY) like TP.PATTERN group by TI.UUID, TI.CITY ), Q_PCODE as ( select TI.UUID, TI.POSTALCODE, COUNT(*) PC_COUNT from T_INPUT TI inner join T_PATTERN TP on 1=1 where UPPER(TI.POSTALCODE) like TP.PATTERN group by TI.UUID, TI.POSTALCODE ) select TI.UUID, TI.FIRSTNAME, TI.LASTNAME, TI.CITY, TI.POSTALCODE, QF.FN_COUNT, QL.LN_COUNT, QC.CT_COUNT, QP.PC_COUNT from T_INPUT ti left join Q_FNAME QF on TI.UUID=QF.UUID left join Q_LNAME QL on TI.UUID=QL.UUID left join Q_CITY QC on TI.UUID=QC.UUID left join Q_PCODE QP on TI.UUID=QP.UUID order by ti.UUID;