作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的表,用于记录管理员所做的简单事件。没什么复杂的。
其中一列是userid
,因此我可以从用户表中引用用户名:
SELECT u.username FROM `users` u, `history` h WHERE u.userid = h.userid
我的问题是内部系统也记录事件(就像用户一样),但没有与内部系统相关的用户 ID。它在记录中简单地记录为零。
有没有办法修改查询以反射(reflect)这一点?我试过 LEFT JOIN,但这不允许我将“系统”指定为用户名。我能做的另一件事是在用户表中输入一个新用户,并将其称为“内部系统”。但我真的不想那样做。
是否可以从查询级别执行此操作?
最佳答案
使用:
SELECT COALESCE(u.username, 'SYSTEM') AS username,
FROM HISTORY h
LEFT JOIN USERS u ON u.userid = h.userid
COALESCE
将返回第一个非 NULL 值,因此如果您 LEFT JOIN 到 USERS 并且 username
为 NULL——那么“系统”或您喜欢的任何内容都会出现.
关于sql - MySql If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3498395/
我是一名优秀的程序员,十分优秀!