在MySQL中,我如何将CONCAT语句限制为只有if语句中的id。

问题描述 投票:0回答:1

在这个问题上,我一直在对着墙头打转,已经有一段时间了。 我试着按照后面的思路 在If语句中并列 但我似乎找不到一种方法来满足我的特殊需求。现在我的CONCAT语句出现了语法错误...'WHERE req.reqCreatedBy = '0' THEN '未知' ELSE users.firstname,' ',user.lastn'。谁能给我一些帮助,让我在这个查询中加入名字和姓氏? 我完全不知道该怎么做。

SELECT req.reqID as Id,
reqDesc.titleText as Title,
req.reqCity as City,
req.reqState as State,
req.areaID as Area,
area.areaname,
reqType.typeTitle as Type,
req.reqCreatedDate as Created,
req.reqEndDate as `End`, 
CONCAT((CASE WHERE req.reqCreatedBy = '0' THEN 'Unknown' ELSE users.firstname,' ',users.lastname END))
AS Recruiter
FROM apps_job_request as req
INNER JOIN apps_job_request_description as reqDesc
ON req.reqTitle = reqDesc.titleID
INNER JOIN apps_job_request_type as reqType
ON reqDesc.typeID = reqType.typeID
INNER JOIN `assemble_users`.area AS area
ON area.areaid = req.areaID
INNER JOIN `assemble_users`.users AS users
ON users.username = req.reqCreatedBy 
WHERE req.reqID is not null
AND req.reqActive = '1'
mysql syntax concat
1个回答
0
投票

如果只检查一个值 req.reqCreatedBy,可以有简单的IF语句,对于多个检查值使用CASE。

SELECT req.reqID          as Id,
       reqDesc.titleText  as Title,
       req.reqCity        as City,
       req.reqState       as State,
       req.areaID         as Area,
       area.areaname,
       reqType.typeTitle  as Type,
       req.reqCreatedDate as Created,
       req.reqEndDate     as `End`,
       -- req.reqCreatedBy is '0' OR ''?
       IF(req.reqCreatedBy = '0', 'Unknown', CONCAT(users.firstname, ' ', users.lastname)) AS Recruiter
FROM apps_job_request as req
         INNER JOIN apps_job_request_description as reqDesc
                    ON req.reqTitle = reqDesc.titleID
         INNER JOIN apps_job_request_type as reqType
                    ON reqDesc.typeID = reqType.typeID
         INNER JOIN `assemble_users`.area AS area
                    ON area.areaid = req.areaID
         INNER JOIN `assemble_users`.users AS users
                    ON users.username = req.reqCreatedBy
WHERE req.reqID is not null
  AND req.reqActive = '1'

© www.soinside.com 2019 - 2024. All rights reserved.