¿Por qué no agregar el prefijo como una columna separada (calculada)?
SELECT 'SN' prefix, snippet_id, title FROM tbl_snippets WHERE title LIKE ?
UNION ALL
SELECT 'TA', tag_id, tag FROM tbl_tags WHERE tag LIKE ?
UNION ALL
SELECT 'CA', category_id, category FROM tbl_categories WHERE category LIKE ?
Editar: También he cambiado UNION [DISTINCT] a UNION ALL - por las siguientes razones:
- Si la consulta original produce resultados diferentes para
UNIONyUNION ALL, al introducir el prefijo cambiará el número de filas de resultados. - En la mayoría de los casos
UNION ALLes un poco más rápido queUNION DISTINCT. - La mayoría de la gente realmente quiere tener
UNION ALL.