SQL-код для вызова всех столбцов из Tb ожидает один столбец, который можно вызвать с помощью As?

#mysql #sql

Вопрос:

Мой текущий код приведен ниже. Я хотел вызвать все столбцы из таблицы с помощью*, но имя столбца idcastncrew должно отображаться как castncrewid. В коде требований это не работает, хотя я хотел бы, чтобы для моего требования было решение, такое как пример кода требований.

Текущий код:-

 SELECT idcastncrew AS castncrewid,castncrewname,castncrewtype,castncrewrole,imagelink,vendor,mode FROM subscriber;
 

Требование :-

 SELECT idcastncrew AS castncrewid, * FROM subscriber;
 

Комментарии:

1. это невозможно. Вам нужно указать нужные столбцы и любой псевдоним в вашем списке столбцов.

2. Либо аспериск, либо все столбцы по одному. И звездочка не в начале списка вывода не разрешена в MySQL.

Ответ №1:

Самое близкое, что, я думаю, вы можете получить, — это дважды переименовать столбец, один раз с новым именем и один раз со старым именем.

В то время как MySQL не разрешает * после столбца с псевдонимами (в результате чего ваш второй фрагмент кода выдает ошибку), он разрешает table.* где угодно…

 SELECT idcastncrew AS castncrewid, subscriber.*  
FROM subscriber;
 

Для повторной итерации; вы все равно получите idcastncrew столбец, но вы ТАКЖЕ получите castncrewid столбец.

Невозможно сказать don't include *this* column при использовании * в MySQL

https://dbfiddle.uk/?rdbms=mysql_5.7amp;fiddle=c69c537e46ad29e3c0c8c03d3ebd1bf7

Ответ №2:

Вы можете создавать псевдонимы столбцов при создании псевдонима таблицы, например, следующим образом

 MariaDB [DEV]> create table xxx (id int, str varchar(20));
MariaDB [DEV]> insert into xxx values (1, 'hi');
MariaDB [DEV]> insert into xxx values (2, 'Hello');
MariaDB [DEV]> insert into xxx values (3, 'World');
MariaDB [DEV]> insert into xxx values (4, 'Goodbye');

MariaDB [DEV]> select a.id as id1, a.* from xxx a order by 1;
 ------ ------ --------- 
| id1  | id   | str     |
 ------ ------ --------- 
|    1 |    1 | hi      |
|    2 |    2 | Hello   |
|    3 |    3 | World   |
|    4 |    4 | Goodbye |
 ------ ------ --------- 
 

Я надеюсь, что это поможет…Рич

p.s. Если этот (или другой) ответ вам поможет, пожалуйста, найдите минутку, чтобы «принять» ответ, который помог, нажав на галочку рядом с ответом, чтобы переключить его с «серого» на «заполнено».