4

随着我正在进行的传奇尝试直接在数据库中做事而不是使用一些 php-logic,另一个问题。

例如:我有一个表:m/ id | by | msg一个 id,由谁完成以及消息是什么。该by字段是一个整数,连接到另一个存储名称的表。通常我会离开加入两个表:

SELECT m.id, m.msg, user.name FROM m LEFT JOIN user ON m.by = u.id

与由此产生的关系,例如:

1 | Hello World | Richard
2 | Foo Bar     | Some else
3 | Howdy       | Richard

我是理查德并且有user.id=4

是否可以显示结果关系you而不是满足Richard条件的user.id = (int)位置?

4

2 回答 2

4
SELECT m.id, m.msg, IF(user.id = 4, 'you', user.name) AS name
FROM m LEFT JOIN user ON m.by = user.id
于 2012-05-17T16:34:51.860 回答
3

像这样做:

SELECT m.id, m.msg, 
(case when user.id = 4 then 'You'
 else user.name end) as username
FROM m LEFT JOIN user ON m.by = u.id 
于 2012-05-17T16:35:51.647 回答