sql >> Databáze >  >> RDS >> Mysql

Jak zjistit, z jaké tabulky pochází výsledek při použití UNION v MySQL

Proč nepřidat předponu jako samostatný (vypočítaný) sloupec?

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 ?

Upravit: Také jsem změnil UNION [DISTINCT] na UNION ALL - z následujících důvodů:

  • Pokud původní dotaz poskytuje jiné výsledky pro UNION a UNION ALL , zavedení prefixu změní počet řádků výsledků.
  • Ve většině případů UNION ALL je o něco rychlejší než UNION DISTINCT .
  • Většina lidí ve skutečnosti chce mít UNION ALL .



  1. PHP-MYSQL:Převod Unix Timestamp na DateTime a naopak

  2. Trigram Wildcard String Search v SQL Server

  3. Zadané heslo pro uživatelský účet 'root' není platné nebo se nepodařilo připojit k databázovému serveru

  4. Generovat GUID v MySQL pro existující data?