1

我有以chat_users列命名的表:

编号 | 用户名 | 状态 | 时间模式 | 意见

这是一个使用 CASE 语句的 UPDATE 示例,效果很好:

$db->exec("UPDATE `proba13`.`chat_users`
SET `username` = CASE id
    WHEN 4 THEN 'Jie'
    WHEN 5 THEN 'Mie'
    WHEN 6 THEN 'Pres'
END,
`status` = CASE id
    WHEN 4 THEN '1'
    WHEN 5 THEN '2'
    WHEN 6 THEN '3'
END
WHERE id IN (4,5,6)");

问题:谁能给我一个在同一张表上使用 CASE 语句的 SELECT 示例?

问候并提前感谢您!

4

2 回答 2

1

这将返回与更新表相同的结果(但是,显然没有对其进行任何更改):

SELECT id,
       CASE id
         WHEN 4 THEN 'Jie'
         WHEN 5 THEN 'Mie'
         WHEN 6 THEN 'Pres'
         ELSE username
       END AS username,
       CASE id
         WHEN 4 THEN 1
         WHEN 5 THEN 2
         WHEN 6 THEN 3
         ELSE status
       END AS status,
       time_mod,
       views
FROM   proba13.chat_users
于 2013-09-19T19:34:07.350 回答
0

试试这个

SELECT  (CASE WHEN 
    id =4 THEN 'Jie'
    WHEN id =5 THEN 'Mie'
    WHEN id =6 THEN 'Pres'
END ) `username` ,
 (CASE  WHEN 
   id= 4 THEN '1'
    WHEN  id= 5 THEN '2'
    WHEN  id= 6 THEN '3'
END ) `status`  FROM  `chat_users` 
WHERE id IN (4,5,6)
于 2013-09-19T19:33:55.843 回答