一个表没有主键,怎么通过表中的2个或多个字段进行数据筛选查询

时间:2023-01-23 13:44:25
一个表没有主键,怎么通过表中的2个或多个字段进行数据筛选查询
表如图,表中有3个字段,但没有主键,我希望查询出pid不等于1并且name不等于n2的记录,期望的结果如下:
pid name value
1 n1 1
1 n3 1
2 n2 2
2 n4 3

我希望得到的结果是排除pid为1和name为n2之后的记录,sql怎么写,求各位大神支招。mysql数据库。

9 个解决方案

#1



select * from [表名] where pid<>1 and name<>'n2'

#2


这个查询条件,与有没有 PK 没什么关系,就按 1# 所说就 OK 了。

#3


引用 1 楼 ap0405140 的回复:

select * from [表名] where pid<>1 and name<>'n2'
+1

#4


是mysql数据库哦
上面的是sql server的写法,mysql我很少用哦

#5


select * from [表名] where pid<>1 or name<>'n2'

#6


骚年,建议你买本SQL必知必会看看

#7


引用 1 楼 ap0405140 的回复:

select * from [表名] where pid<>1 and name<>'n2'

按照你提供的sql,结果看下图,跟我要的数据结果完全不对,
一个表没有主键,怎么通过表中的2个或多个字段进行数据筛选查询

#8


引用 6 楼 grayonlineab 的回复:
骚年,建议你买本SQL必知必会看看




引用 7 楼 zwy0123 的回复:
Quote: 引用 1 楼 ap0405140 的回复:


select * from [表名] where pid<>1 and name<>'n2'

按照你提供的sql,结果看下图,跟我要的数据结果完全不对,
一个表没有主键,怎么通过表中的2个或多个字段进行数据筛选查询


建议你也买本来看看

#9


引用 4 楼 rockyljt 的回复:
是mysql数据库哦
上面的是sql server的写法,mysql我很少用哦


相差不大的

#1



select * from [表名] where pid<>1 and name<>'n2'

#2


这个查询条件,与有没有 PK 没什么关系,就按 1# 所说就 OK 了。

#3


引用 1 楼 ap0405140 的回复:

select * from [表名] where pid<>1 and name<>'n2'
+1

#4


是mysql数据库哦
上面的是sql server的写法,mysql我很少用哦

#5


select * from [表名] where pid<>1 or name<>'n2'

#6


骚年,建议你买本SQL必知必会看看

#7


引用 1 楼 ap0405140 的回复:

select * from [表名] where pid<>1 and name<>'n2'

按照你提供的sql,结果看下图,跟我要的数据结果完全不对,
一个表没有主键,怎么通过表中的2个或多个字段进行数据筛选查询

#8


引用 6 楼 grayonlineab 的回复:
骚年,建议你买本SQL必知必会看看




引用 7 楼 zwy0123 的回复:
Quote: 引用 1 楼 ap0405140 的回复:


select * from [表名] where pid<>1 and name<>'n2'

按照你提供的sql,结果看下图,跟我要的数据结果完全不对,
一个表没有主键,怎么通过表中的2个或多个字段进行数据筛选查询


建议你也买本来看看

#9


引用 4 楼 rockyljt 的回复:
是mysql数据库哦
上面的是sql server的写法,mysql我很少用哦


相差不大的