как объединить два столбца в один с существующим именем столбца в mysql?
Я хочу объединить два столбца в таблице с существующим именем столбца с помощью mysql.
пример: у меня есть столбец FIRSTNAME
и LASTNAME
и так много столбцов также. Я хочу объединить эти два столбца с именем FIRSTNAME
только.
поэтому я попробовал так:
SELECT *, CONCAT(FIRSTNAME, ',', LASTNAME) AS FIRSTNAME FROM `customer`;
но оно отображает два поля с именем FIRSTNAME
. одно поле имеет нормальные значения, а другое-объединенные значения. Мне нужна только одна колонка. с тех конкатенировать значения. Я могу выбрать отдельные столбцы, но в моей таблице более 40 столбцов.
есть ли способ удалить исходный столбец с помощью mysql?
3 ответов
как указал Азиз-Шейх, невозможно подавить отдельную колонку из *
директива, однако вы можете использовать следующий хак:
SELECT CONCAT(c.FIRSTNAME, ',', c.LASTNAME) AS FIRSTNAME,
c.*
FROM `customer` c;
делать это причинит второе возникновение FIRSTNAME
столбец для принятия псевдонима FIRSTNAME_1
таким образом, вы должны иметь возможность безопасно адресовать свой настроенный
вместо того, чтобы получать все столбцы таблицы с помощью * в инструкции sql, вы используете для указания необходимых столбцов таблицы.
вы можете использовать инструкцию SQL примерно так:
SELECT CONCAT(FIRSTNAME, ' ', LASTNAME) AS FIRSTNAME FROM customer;
кстати, почему вы не могли использовать FullName вместо FirstName? Вот так:
SELECT CONCAT(FIRSTNAME, ' ', LASTNAME) AS 'CUSTOMER NAME' FROM customer;
удалить *
из вашего запроса и используйте отдельные имена столбцов, например:
SELECT SOME_OTHER_COLUMN, CONCAT(FIRSTNAME, ',', LASTNAME) AS FIRSTNAME FROM `customer`;
используя *
означает, что в ваших результатах вам нужны все столбцы таблицы. В вашем случае *
также будет включать в себя FIRSTNAME
. Затем вы объединяете некоторые столбцы и используете псевдоним FIRSTNAME
. Это создает 2 столбца с тем же именем.