为SELECT语句上的字段赋值

时间:2014-05-21 12:11:09

标签: mysql sql

我不确定我是否能很好地使用此字段 calendar.type_event = NULL 。现在对我很好,因为我需要将第二个SELECT区分为第三种类型。

我想做一些像 calendar.type_event ='shared_event'这样的东西来区分它。但返回0,NULL返回任何内容。这不是问题,只有我可以分配自己的值:'shared_event'。

非常感谢

整个查询是:

(SELECT     
    id, type_event
    FROM calendar
    WHERE user_id = '.$user_id.'        
)       

 UNION

(SELECT 
    calendar.id, calendar.type_event = NULL
    FROM calendar
    RIGHT JOIN avisos ON avisos.app_id = calendar.id 
    WHERE avisos.user_destiny_id = '.$user_id.'
)

ORDER BY fecha_evento ASC

3 个答案:

答案 0 :(得分:0)

你应该可以这样做:

(SELECT     
    id, type_event
    FROM calendar
    WHERE user_id = '.$user_id.'        
)       

 UNION

(SELECT 
    calendar.id, "shared_event"
    FROM calendar
    RIGHT JOIN avisos ON avisos.app_id = calendar.id 
    WHERE avisos.user_destiny_id = '.$user_id.'
)

ORDER BY fecha_evento ASC

答案 1 :(得分:0)

  

我需要知道我是否可以指定自己的值:'shared_event'

是的,你可以。代替列calendar.type_event,只需使用文字'shared_event'

示例

SELECT 
       calendar.id, 'shared_event'
  FROM calendar
       RIGHT JOIN avisos ON avisos.app_id = calendar.id 
 WHERE avisos.user_destiny_id = '.$user_id.'

答案 2 :(得分:-1)

我认为这就是你要找的东西:

(SELECT     
    id, type_event
    FROM calendar
    WHERE user_id = '.$user_id.'        
)       
UNION
(SELECT 
    calendar.id, '' type_event
    FROM calendar
    RIGHT JOIN avisos ON avisos.app_id = calendar.id 
    WHERE avisos.user_destiny_id = '.$user_id.'
)
ORDER BY fecha_evento ASC

在第二个查询中,type_event字段将包含空值。如果type_event字段是数字字段,则可以放置0(ZERO)而不是''(空单引号/字符串)。