MySQL SELECT 查询选择中的 where 子句

标签 mysql

SELECT *, j.company_id as companyid, j.id as jid, p.id as pid, f.id as fave_id, f.user_id as user_id
FROM people p
LEFT JOIN job j 
ON p.job_id = j.id
LEFT JOIN favourites f
ON p.id = f.people_id
WHERE p.company_id = 1
ORDER BY p.id ASC

我有上面的 MySQL 查询,它工作得很好,但最后两部分是我需要整理的。

默认情况下,在每一行中,它们输出 null,否则它们输出整数,例如 fave_id 作为 46user_id6

我实际上需要弄清楚的是,如果 fave_iduser_id 在我的头脑中都不为空,是否可以从查询的 SELECT 部分输出像这样的东西

SELECT *, j.company_id as companyid, j.id as jid, p.id as pid, f.id as fave_id, f.user_id as user_id, [if fave_id && user_id then favorite = true] 
FROM people p
LEFT JOIN job j 
ON p.job_id = j.id
LEFT JOIN favourites f
ON p.id = f.people_id
WHERE p.company_id = 1
ORDER BY p.id ASC

最佳答案

一个CASE语句将用于检查值并返回所需的值:

SELECT *, j.company_id as companyid, j.id as jid, p.id as pid, f.id as fave_id, f.user_id as user_id, 
    (CASE WHEN fave_id IS NOT NULL AND user_id IS NOT NULL THEN 1 ELSE 0 END) AS favorite 
FROM people p
LEFT JOIN job j 
ON p.job_id = j.id
LEFT JOIN favourites f
ON p.id = f.people_id
WHERE p.company_id = 1
ORDER BY p.id ASC

关于MySQL SELECT 查询选择中的 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25311815/

相关文章:

php - 将数组从 PHP 发送到 GWT 的问题

php - 向多个表中插入数据 PHP MySQL

mysql - 对表中的所有列执行求和、平均和乘法?

mysql - 带 Group By 的 Where 子句

mysql - GROUP BY 查询 - 为什么这么慢

mysql - 如何在 MySQL 服务器中将最小(日期)和最大(日期)之间的小时分割为 4 小时板

mysql 过程 - 在第二个查询中使用结果并重新格式化日期

php - Yii 在事件记录中执行像 afterSave 这样的命令后自动调用函数

php - 获取在 while 循环中加在一起的每一行的总和

mysql - 如何在Scrapy中获取MySQL的Last Id?