select查询多个纪录的条件怎么写

时间:2022-05-23 22:25:32
select查询多个纪录的条件怎么写
例如有个表
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


没看名表 select查询多个纪录的条件怎么写

#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); //插入数据


#3


引用 2 楼 kill31415 的回复:
我是来学习的!


你的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


引用 3 楼 lwaif 的回复:
Quote: 引用 2 楼 kill31415 的回复:

我是来学习的!


你的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;

#1


没看名表 select查询多个纪录的条件怎么写

#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); //插入数据


#3


引用 2 楼 kill31415 的回复:
我是来学习的!


你的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


引用 3 楼 lwaif 的回复:
Quote: 引用 2 楼 kill31415 的回复:

我是来学习的!


你的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;