sql >> Database teknologi >  >> RDS >> Mysql

Hvordan man ved, hvilken tabel et resultat kom fra, når man bruger UNION i MySQL

Hvorfor ikke tilføje præfikset som en separat (beregnet) kolonne?

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 ?

Rediger: Jeg har også ændret UNION [DISTINCT] til UNION ALL - af følgende årsager:

  • Hvis den oprindelige forespørgsel giver andre resultater for UNION og UNION ALL , vil introduktion af præfikset ændre antallet af resultatrækker.
  • I de fleste tilfælde UNION ALL er lidt hurtigere end UNION DISTINCT .
  • De fleste mennesker ønsker faktisk at have UNION ALL .



  1. Sådan sikkerhedskopieres/gendannes MySQL/MariaDB og PostgreSQL ved hjælp af 'Automysqlbackup' og 'Autopostgresqlbackup' værktøjer

  2. MySQL Views - Hvornår skal du bruge og hvornår ikke

  3. Hvordan tilføjer jeg en total som den sidste række i min sql?

  4. Kørsel af to SQL-forespørgsler på én php-side (SET + SELECT)