使用两列在MySQL中标记重复序列

时间:2011-04-26 10:17:21

标签: mysql

我有一个MySQL 5.5数据库,其表格与此类似:

   id test location measurement   unit device retest
    1  1       1       -2405.5     mV    1     null
    2  1       2        856        mV    1     null
    3  1       3        956.4      mV    1     null
    4  2       1       -805.5      mV    1     null
    5  2       2        1456       mV    1     null
    6  2       3        22.4       mV    1     null
    7  1       1       -805.5      mV    1     null
    8  1       2        456        mV    1     null
    9  1       3        456.4      mV    1     null
   10  2       1       -805.5      mV    1     null
   11  2       2        456        mV    1     null
   12  2       3        456.4      mV    1     null
   13  1       1       -805.5      mV    2     null
   14  1       2        856        mV    2     null
   15  1       3        756.4      mV    2     null
   16  2       1       -805.5      mV    2     null
   17  2       2        456        mV    2     null
   18  2       3        456.4      mV    2     null
   19  1       1       -805.5      mV    3     null
   20  1       2        456        mV    3     null
   21  1       3        456.4      mV    3     null
   22  2       1       -805.5      mV    3     null
   23  2       2        456        mV    3     null
   24  2       3        456.4      mV    3     null

我希望我的表能够反映设备重新测试的次数:

   id test location measurement   unit device retest
    1  1       1       -2405.5     mV    1     0
    2  1       2        856        mV    1     0
    3  1       3        956.4      mV    1     0
    4  2       1       -805.5      mV    1     0
    5  2       2        1456       mV    1     0
    6  2       3        22.4       mV    1     0
    7  1       1       -805.5      mV    1     1
    8  1       2        456        mV    1     1
    9  1       3        456.4      mV    1     1
   10  2       1       -805.5      mV    1     1
   11  2       2        456        mV    1     1
   12  2       3        456.4      mV    1     l
   13  1       1       -805.5      mV    2     0
   14  1       2        856        mV    2     0
   15  1       3        756.4      mV    2     0
   16  2       1       -805.5      mV    2     0
   17  2       2        456        mV    2     0
   18  2       3        456.4      mV    2     0
   19  1       1       -805.5      mV    3     0
   20  1       2        456        mV    3     0
   21  1       3        456.4      mV    3     0
   22  2       1       -805.5      mV    3     0
   23  2       2        456        mV    3     0
   24  2       3        456.4      mV    3     0

我搜索了几天,我找到的只是计算重复次数的技巧。我确定关键在于测试,位置和设备列的组合,但我缺乏技能。感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

SELECT  *,
        EXISTS
        (
        SELECT  NULL
        FROM    mytable mr
        WHERE   mr.test = m.test
                AND mr.location = m.location
                AND mr.device = m.device
                AND mr.id < m.id
        ) AS retest
FROM    mytable m

(test, location, device, id)上创建一个索引,以便快速工作。