sql >> Databasteknik >  >> RDS >> Mysql

Hur man vet vilken tabell ett resultat kom från när man använder UNION i MySQL

Varför inte lägga till prefixet som en separat (beräknad) kolumn?

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 ?

Redigera: Jag har också ändrat UNION [DISTINCT] till UNION ALL - av följande skäl:

  • Om den ursprungliga frågan ger andra resultat för UNION och UNION ALL , kommer prefixet att ändra antalet resultatrader.
  • I de flesta fall UNION ALL är något snabbare än UNION DISTINCT .
  • De flesta vill faktiskt ha UNION ALL .



  1. Mysql localhost !=127.0.0.1?

  2. Oordnade resultat i SQL

  3. Förbryllande php/Mysql Time aritmetiska beteende

  4. Skapa en databas i SQLite