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

責任者ID = 2がボブなどを表示する場合、IFステートメントを使用する必要がありますか?

何か案は?

アップデート:

はい、ユーザーテーブルがあります。これは次のとおりです。

テーブル名: 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 に答える