web-dev-qa-db-ja.com

MySQL SELECTを使用して仮想列を作成する方法は?

AS aをSELECTし、bがテーブル内の列ではない場合、クエリは「仮想」列を作成しますか?

実際、クエリに仮想列を組み込み、クエリに情報を処理して、後で各アイテムで使用できるようにする必要があります。

59
Skuta

何かのようなもの

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

これにより、操作を行い、列として表示できます。

編集:

結合を使用して、列として操作を表示することもできます。

    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
79
Gabriel Sosa

Selectステートメント内に仮想列「年齢」を作成する場合は、これを試してください。

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

仮想列を次のように追加できます

SELECT '1' as temp

ただし、追加の列にwhere条件を設定しようとすると、機能しなくなり、列が存在しないためエラーメッセージが表示されます。

Sqlの結果をtable.ieとして返すことにより、この問題を解決できます。

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

SELECTはデータベースからデータを取得するだけで、テーブル自体は変更しません。

書いたら

SELECT a AS b FROM x

「b」はクエリ内の単なるエイリアス名です。余分な列は作成されません。この例の結果には、「b」という名前の列が1つだけ含まれます。ただし、表の列は「a」のままです。 「b」は単なる別の名前です。

「後で各項目で使用できるように」とはどういう意味か本当にわかりません。 selectステートメントの後のほうを意味しますか、それともアプリケーションの後の方を意味しますか。おそらく、いくつかのサンプルコードを提供できます。

3
Sebastian Dietz

構文では、aのエイリアスとしてbを作成しますが、ステートメントの結果を超えるスコープはありません。 [〜#〜] view [〜#〜] を作成したいようです

0
cmsjr