首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

where子查询懵了,该怎么处理

2013-07-01 
where子查询懵了, select goods_id,cat_id, goods_name from goods where goods_id (select max(goods_id

where子查询懵了,


 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多个),再选用合适的运算符

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

[解决办法]
子查询的结果可以作为另一个查询的条件,当你查询的结果只有一条时可以用 = 
[解决办法]
对的,select max(goods_id) from goods) 返回的是记录集
而 goods_id=(select max(goods_id) from goods)
中的 goods_id 也是记录集(因为每行都有一个)

当然就可以比较了

热点排行