Добавить дополнительный столбец в select с помощью ‘*’

#mysql

#mysql

Вопрос:

Я пишу sql-запрос для задания миграции данных для извлечения данных и отправки с mysql-сервера a на mysql-сервер b.

Сервер a имеет разные базы данных, представляющие разные игровые каналы, и в каждой базе данных есть таблица tablex , у них одинаковое имя таблицы и одинаковая схема:

  uid  level
 123    3
 211    5
  

В то время как на сервере b есть только одна таблица tablex для получения tablex всех баз данных, и в ней есть еще один столбец — channel

 channel uid  level
 1      123    3
 1      211    5
 2      355    2
  

Я могу проанализировать номер канала из имени базы данных с помощью python, но мне нужно поместить эту константу в sql, и, поскольку существует много таблиц, я не могу исправить столбцы. Итак, просто хочу убедиться, есть ли какой-либо способ сделать это следующим образом:

 select 1,* from xxx.yyy
  

Ответ №1:

Вы могли бы попробовать добавить псевдоним и имя таблицы

 select 1 as my_col, yyy.* from xxx.yyy
  

или используя string

 select cast('1'  as  unsigned) , yyy.* from xxx.yyy
  

Ответ №2:

Да, вы можете преобразовать запрос в другой SELECT и добавить столбцы, например:

 SELECT A.*, '1'
FROM (
  SELECT *
  FROM your_table
) A;