Dlaczego nie dodać przedrostka jako oddzielnej (obliczonej) kolumny?
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 ?
Edytuj: Zmieniłem również UNION [DISTINCT]
do UNION ALL
- z następujących powodów:
- Jeśli oryginalne zapytanie daje różne wyniki dla
UNION
iUNION ALL
, wprowadzenie prefiksu zmieni liczbę wierszy wyników. - W większości przypadków
UNION ALL
jest nieco szybszy niżUNION DISTINCT
. - Większość ludzi faktycznie chce mieć
UNION ALL
.