Как создать виртуальный столбец с помощью MySQL SELECT? - PullRequest
59 голосов
/ 18 января 2009

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

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

Ответы [ 5 ]

78 голосов
/ 18 января 2009

что-то вроде

    SELECT id, email, IF(actived = 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
57 голосов
/ 09 июля 2011

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

select brand, name, "10" as age from cars...
9 голосов
/ 01 января 2015

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

SELECT '1' as temp

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

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

SELECT tb.* from (SELECT 1 as temp) as tb WHERE tb.temp = 1
3 голосов
/ 18 января 2009

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

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

SELECT a AS b FROM x

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

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

0 голосов
/ 18 января 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...