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

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

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

5 ответов


что-то вроде

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

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

EDIT:

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

    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

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

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

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

SELECT '1' as temp

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

мы можем решить эту проблему, вернув результат sql в виде таблицы.то есть,

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

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

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

SELECT a AS b FROM x

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

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


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