我目前正在执行此声明:
SELECT * FROM b_tasks WHERE CREATED_DATE BETWEEN '$from' AND '$to' AND GROUP_ID=13 ORDER BY ID DESC
返回:
Responsible ID | Title | Date Created
2 | Job 1 | 2013/09/20
4 | Job 2 | 2013/09/20
responsible_id表示数字形式的实际名称。例如,resonsible_id 2实际上是Bob Taylor,respons_id 4是Andrew Thompson。所以我想做的是用表名替换表中的数字,所以在2中,显示Bob Taylor以及4中显示Andrew Thompson的位置。
我目前正在使用PHP打印这些答案。
. $row['RESPONSIBLE_ID'] .
我是否应该使用IF语句,如果responsible_id = 2显示Bob等等?
有什么想法吗?
更新:
有一个用户表是,这是:
表名: b_users
ID | NAME | LAST_NAME
1 | Andy | Champ
2 | Bob | Taylor
3 | Katie | Gillo
4 | Andrew | Thompson
显然,此表中的ID与另一个表中的responsible_id相对应。我可以在上面的同一声明中加入这些吗?
答案 0 :(得分:1)
CASE
CASE WHEN Responsible_ID = 2 THEN 'Bob Taylor'
WHEN Responsible_ID = 4 THEN 'Andrew Thompson'
ELSE Responsible_ID
END AS Responsible_ID
SELECT a.*,
CONCAT(b.Name, ' ', b.Last_Name) Fullname
FROM b_tasks a
INNER JOIN b_users b
ON a.Responsible_ID = b.ID
WHERE CREATED_DATE BETWEEN '$from' AND '$to' AND GROUP_ID=13
ORDER BY ID DESC
并致电$row['Fullname']
答案 1 :(得分:0)
试试这个
UPDATE `table` SET `id` = CASE
WHEN id = 1 THEN 'value1'
WHEN id = 2 THEN 'value2'
WHEN id = 3 THEN 'value3'
ELSE `id`
END
WHERE id in (1,2,3)