从mysql表中检索信息

时间:2012-01-07 10:01:21

标签: mysql

我有这样的情况。我有两个mysql表。一个“数据”表和第二个表“mirror_data”。 “data”表包含“local”列(在此列中只存储一个数字)。这是“mirror_data”表

CREATE TABLE IF NOT EXISTS mirror_data
    (
    id_mir INT(11) NOT NULL UNIQUE,
    local VARCHAR(255),
    local_mir VARCHAR(255),
    id_data INT(11) NOT NULL DEFAULT 0
    );

这第二个表是什么意思=>我已经标记了本地列只包含一个数字并在此(第二个表mirror_data)中包含在本地列中的相同信息(就像在“数据”表中一样),但也包含local_mir列,它标记了人名,让我们说这个只是一些字符串。

以下是情况=>当我从“数据”表中检索信息时,想检查每个信息是否存在local_mir字符串(来自“mirror_data”表)当前本地(来自“数据”表)列,如果存在则从local_mir中检索此字符串而不是数字(来自本地列的“数据”表)。

有什么想法怎么做?

1 个答案:

答案 0 :(得分:2)

我不确定,如果我得到你想要的东西,但它是这样的吗?

SELECT
     data.id,
     case
        when mirror_data.local_mir is not null then mirror_data.local_mir
        else
          data.local
     end local
FROM 
data
LEFT JOIN
mirror_data
ON data.id = mirror_data.id_mir

或使用COALESCE功能......