例如有个表
id data
1 2.3
1 5.3
1 3.2
2 1.3
2 5.3
3 1.3
3 2.3
3 2.4
现在要插入数据1.3和5.3,要可以插入他们的id是新的4,有数据重复就不能插入
现在表里已经有id=2的两个记录
怎么写一句select查询出来?id未知
6 个解决方案
#1
没看名表
#2
我是来学习的!
你的id是主键吗?主键是不允许重复的,如果你的id是主键,那你这些数据都不可能添加进去;
如果你这个id是其他什么分组编号的话,那把名称改一下,比如改成group,另外添加一个id,设置成主键,不为空,自增;
这样你的数据才可能添加进去;
查找的时候用sql查询语句:
select group,data from table; //查询表中的group,data字段
插入数据就用sql插入语句:
insert into table (group,data) values (4,1.3),(4,5.3); //插入数据
你的id是主键吗?主键是不允许重复的,如果你的id是主键,那你这些数据都不可能添加进去;
如果你这个id是其他什么分组编号的话,那把名称改一下,比如改成group,另外添加一个id,设置成主键,不为空,自增;
这样你的数据才可能添加进去;
查找的时候用sql查询语句:
select group,data from table; //查询表中的group,data字段
插入数据就用sql插入语句:
insert into table (group,data) values (4,1.3),(4,5.3); //插入数据
#3
我的意思是想查找(1.3),(5.3)这两个数是否已经存在
select group,data from table;
这样还是查出很多结果来,主要是后面条件怎么写?data=1.3 or data=5.3 这样也会有很多结果
#4
SELECT * FROM (
SELECT id,GROUP_CONCAT(data) AS groupA FROM your_table GROUP BY id )a
WHERE FIND_IN_SET(1.3,groupA) >0 AND FIND_IN_SET(5.3,groupA) >0
#5
没看懂楼主的需求。
#6
那就直说嘛!搞半天不明白要做什么,就是要一夜判断的sql从句嘛
select group,data from table where date=1.3 or data=5.3;
#1
没看名表
#2
我是来学习的!
你的id是主键吗?主键是不允许重复的,如果你的id是主键,那你这些数据都不可能添加进去;
如果你这个id是其他什么分组编号的话,那把名称改一下,比如改成group,另外添加一个id,设置成主键,不为空,自增;
这样你的数据才可能添加进去;
查找的时候用sql查询语句:
select group,data from table; //查询表中的group,data字段
插入数据就用sql插入语句:
insert into table (group,data) values (4,1.3),(4,5.3); //插入数据
你的id是主键吗?主键是不允许重复的,如果你的id是主键,那你这些数据都不可能添加进去;
如果你这个id是其他什么分组编号的话,那把名称改一下,比如改成group,另外添加一个id,设置成主键,不为空,自增;
这样你的数据才可能添加进去;
查找的时候用sql查询语句:
select group,data from table; //查询表中的group,data字段
插入数据就用sql插入语句:
insert into table (group,data) values (4,1.3),(4,5.3); //插入数据
#3
我是来学习的!
你的id是主键吗?主键是不允许重复的,如果你的id是主键,那你这些数据都不可能添加进去;
如果你这个id是其他什么分组编号的话,那把名称改一下,比如改成group,另外添加一个id,设置成主键,不为空,自增;
这样你的数据才可能添加进去;
查找的时候用sql查询语句:
select group,data from table; //查询表中的group,data字段
插入数据就用sql插入语句:
insert into table (group,data) values (4,1.3),(4,5.3); //插入数据
我的意思是想查找(1.3),(5.3)这两个数是否已经存在
select group,data from table;
这样还是查出很多结果来,主要是后面条件怎么写?data=1.3 or data=5.3 这样也会有很多结果
#4
SELECT * FROM (
SELECT id,GROUP_CONCAT(data) AS groupA FROM your_table GROUP BY id )a
WHERE FIND_IN_SET(1.3,groupA) >0 AND FIND_IN_SET(5.3,groupA) >0
#5
没看懂楼主的需求。
#6
我是来学习的!
你的id是主键吗?主键是不允许重复的,如果你的id是主键,那你这些数据都不可能添加进去;
如果你这个id是其他什么分组编号的话,那把名称改一下,比如改成group,另外添加一个id,设置成主键,不为空,自增;
这样你的数据才可能添加进去;
查找的时候用sql查询语句:
select group,data from table; //查询表中的group,data字段
插入数据就用sql插入语句:
insert into table (group,data) values (4,1.3),(4,5.3); //插入数据
我的意思是想查找(1.3),(5.3)这两个数是否已经存在
select group,data from table;
这样还是查出很多结果来,主要是后面条件怎么写?data=1.3 or data=5.3 这样也会有很多结果
那就直说嘛!搞半天不明白要做什么,就是要一夜判断的sql从句嘛
select group,data from table where date=1.3 or data=5.3;