Mysql,我该如何防止这种重复

时间:2017-03-27 06:56:07

标签: mysql sql

我有一个像这样的用户

constructor(props) {
super(props);
this.state = {
  rows: [],
};
}

addRow(){
this.state.rows.push(index++)
this.setState({ rows: this.state.rows })
}

render(){

let contactView = () => {
    return <View>
              <AddComponent />
           </View>
}

return(
 <View>
      <View>
        {contactView}
      </View>

      <TouchableHighlight onPress={ this.addRow } >
        <Text>Add</Text>
      </TouchableHighlight>
  </View>
);

我想选择没有像这样的相同代码重复

ID |     Code     | Name
1  | f965a4eb IN  | Bob
2  | f965a4eb OUT | Bob
3  | f965a4ed IN  | James
4  | f965a4ed OUT | James

对此最好的查询是什么?

1 个答案:

答案 0 :(得分:1)

您的数据面临的挑战是Code,我们希望将其用于分组,最后将其隐藏在包含INOUT的字符串中。一种方法将实际代码分离出来然后使用该组并获得所需的结果。但是,如果将隔离的代码保存在单独的列中,那么向前推进可能会让您的生活更轻松。

SELECT t1.*
FROM yourTable t1
INNER JOIN
(
    SELECT SUBSTRING_INDEX(Code, ' ', 1) AS Code, Name, MIN(ID) AS min_ID
    FROM yourTable
    GROUP BY SUBSTRING_INDEX(Code, ' ', 1), Name
) t2
    ON t1.Name = t2.Name AND
       SUBSTRING_INDEX(t1.Code, ' ', 1) = t2.Code AND
       t1.ID = t2.min_ID

<强>输出:

enter image description here

在这里演示:

Rextester