1

私は列で名前が付けられたテーブルを持っchat_usersています:

ID | ユーザー名 | ステータス | time_mod | ビュー

これは、見事に機能する 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 に答える