Por que não adicionar o prefixo como uma coluna separada (computada)?
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: Também alterei
UNION [DISTINCT]
para UNION ALL
- pelos seguintes motivos:- Se a consulta original produzir resultados diferentes para
UNION
eUNION ALL
, a introdução do prefixo alterará o número de linhas de resultado. - Na maioria dos casos
UNION ALL
é um pouco mais rápido queUNION DISTINCT
. - A maioria das pessoas realmente quer ter
UNION ALL
.