¿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
UNION
yUNION ALL
, al introducir el prefijo cambiará el número de filas de resultados. - En la mayoría de los casos
UNION ALL
es un poco más rápido queUNION DISTINCT
. - La mayoría de la gente realmente quiere tener
UNION ALL
.