Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да разберете от каква таблица е дошъл резултатът, когато използвате UNION в MySQL

Защо не добавите префикса като отделна (изчислена) колона?

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 ?

Редактиране: Промених също UNION [DISTINCT] към UNION ALL - поради следните причини:

  • Ако оригиналната заявка дава различни резултати за UNION и UNION ALL , въвеждането на префикса ще промени броя на редовете с резултати.
  • В повечето случаи UNION ALL е малко по-бързо от UNION DISTINCT .
  • Повечето хора всъщност искат да имат UNION ALL .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JPA EclipseLink DatabaseException:„таблица foo.SEQUENCE не съществува“

  2. MySQL ГРУПА ПО възрастов диапазон, включително нулеви диапазони

  3. Грешки, появяващи се в mysqli кода и call_user_func_array()

  4. свържете ECONNREFUSED - възел js, sql

  5. MySQL - създаване на изглед с помощта на подзаявка в клауза FROM