Подтвердить что ты не робот

Как создать виртуальный столбец с помощью MySQL SELECT?

Если я делаю SELECT a AS b и b не является столбцом в таблице, будет ли запрос создавать "виртуальный" столбец?

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

4b9b3361

Ответ 1

Что-то вроде:

SELECT id, email, IF(active = 1, 'enabled', 'disabled') AS account_status FROM users

Это позволяет выполнять операции и отображать их в виде столбцов.

EDIT:

Вы также можете использовать соединения и операции показа в виде столбцов:

SELECT u.id, e.email, IF(c.id IS NULL, 'no selected', c.name) AS country
FROM users u LEFT JOIN countries c ON u.country_id = c.id

Ответ 2

Попробуйте это, если вы хотите создать виртуальный столбец "age" в выражении select:

select brand, name, "10" as age from cars...

Ответ 3

Вы можете добавить виртуальные столбцы как

SELECT '1' as temp

Но если вы попытаетесь установить условие, в котором будет добавлен дополнительный столбец, он не будет работать и отобразит сообщение об ошибке, поскольку столбец не существует.

Мы можем решить эту проблему, возвращая результат sql как table.ie,

SELECT tb.* from (SELECT 1 as temp) as tb WHERE tb.temp = 1

Ответ 4

SELECT только извлекает данные из базы данных, он не меняет сама таблица.

Если вы пишете

SELECT a AS b FROM x

"b" - это просто псевдоним в запросе. Он не создает дополнительный столбец. Ваш результат в примере будет содержать только один столбец с именем "b" . Но столбец в таблице останется "а". "b" - это просто другое имя.

Я действительно не понимаю, что вы имеете в виду, "поэтому я могу использовать его с каждым элементом позже". Вы имеете в виду позже в заявлении select или позже в вашем приложении. Возможно, вы можете предоставить примерный код.

Ответ 5

Ваш синтаксис создавал бы псевдоним для a как b, но у него не было бы рамки вне результатов инструкции. Похоже, вы можете создать VIEW