编程语言where子查询懵了,

编程语言where子查询懵了,

本帖最后由 u010572351 于 2013-06-28 17:14:25 编辑



select goods_id,cat_id, goods_name from goods where goods_id=
(select max(goods_id) from goods);

语句没有问题问题,返回正确结果!但是:

意思大概是:查询商品表中最后添加的商品信息(goods_id最大),
想法我懂,但是where条件后面的条件值是一个select语句, 他虽然返回了一个最大值,但是他是一个select语句啊,应该是一个结果集,不是一个int啊,怎么能和goods_id做比较?懵了。

 

回复讨论(解决方案)

如果是结果集内是单个结果 是可以用=符号的
如果是多个结果,往往用in. 一般来说看自己需求来写,这样基本上能判定子查询结果是什么(单个or多个),再选用合适的运算符

总之就是这种是可以的,因为结果集只有一个结果

如果是结果集内是单个结果 是可以用=符号的
如果是多个结果,往往用in. 一般来说看自己需求来写,这样基本上能判定子查询结果是什么(单个or多个),再选用合适的运算符

总之就是这种是可以的,因为结果集只有一个结果

是这样的,感谢!

子查询的结果可以作为另一个查询的条件,当你查询的结果只有一条时可以用 =

对的,select max(goods_id) from goods) 返回的是记录集
而 goods_id=(select max(goods_id) from goods)
中的 goods_id 也是记录集(因为每行都有一个)

当然就可以比较了

好 我也会写这种查询了。

文章来源:https://www.php.cn/faq/263065.html

百度网盘搜索
www.bdsoba.com
搜白度
www.sobd.cc
教程弟
www.jcdi.cn
搜码吧
www.somanba.cn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值