Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie Sie wissen, aus welcher Tabelle ein Ergebnis stammt, wenn Sie UNION in MySQL verwenden

Warum nicht das Präfix als separate (berechnete) Spalte hinzufügen?

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 ?

Bearbeiten: Ich habe auch UNION [DISTINCT] geändert zu UNION ALL - aus folgenden Gründen:

  • Wenn die ursprüngliche Abfrage andere Ergebnisse für UNION liefert und UNION ALL , die Einführung des Präfixes ändert die Anzahl der Ergebniszeilen.
  • In den meisten Fällen UNION ALL ist etwas schneller als UNION DISTINCT .
  • Die meisten Leute wollen eigentlich UNION ALL haben .