1

我目前正在执行此声明:

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,并且 Responsible_id 4 是 Andrew Thompson。所以我想做的是用他们的名字替换表中的数字,所以它的 2 显示 Bob Taylor,它的 4 显示 Andrew Thompson。

我目前正在使用 PHP 打印这些答案。

. $row['RESPONSIBLE_ID'] . 

我应该使用 IF 语句,如果责任 ID=2 显示 Bob 等等?

有任何想法吗?

更新:

有一个用户表是的,内容如下:

表名:b_users

ID   | NAME   | LAST_NAME
1    | Andy   | Champ
2    | Bob    | Taylor
3    | Katie  | Gillo
4    | Andrew | Thompson

很明显,这张表中的id对应于另一张表中的responsible_id。我可以在上面的同一个语句中加入这些吗?

4

2 回答 2

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']

于 2013-09-20T11:54:55.027 回答
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)
于 2013-09-20T11:59:17.067 回答