在MySQL中满足条件时返回字符串而不是字段值

时间:2012-05-17 16:29:10

标签: mysql

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

例如:我有一张表: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的{​​{1}}?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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