我有一张数据表,结构如下。
己知条件是attr_id=151或153,attr_value='4L'或‘SM’,所以写如下SQL语句。
SELECT * FROM 表名 FROM WHERE attr_id IN(151,153) AND attr_value IN('4L','SM')
查询结果:
这不是我想要的,我想只查出如下结果,该怎么写呢?
己知条件是attr_id=151或153,attr_value='4L'或‘SM’,所以写如下SQL语句。
SELECT * FROM 表名 FROM WHERE attr_id IN(151,153) AND attr_value IN('4L','SM')
查询结果:
这不是我想要的,我想只查出如下结果,该怎么写呢?
解决方案 »
- 安装了mysql_memcached的udf,创建触发器时提示错误
- mysql中表的一个字段的字段名和关键字重名 怎么写sql语句
- 这条简单的SQL语句咋来优化啊?
- MySQL的存储过程如何退出
- 急,mysql_fetch_fields()的问题,请大家帮帮忙。
- mysql的这个错误是什么意思?
- 不小心删了一个数据库,不知能否恢复?Mysql的
- 用delphi+apache+mysql编程出现的问题!!!
- 谁能给我一个MySql的程序例子。
- 请问怎样在Windows和Linux下访问远程(inter网)MySQL服务?
- mysql创建数据库怎么指定数据库的大小 多少KB或是MB
- mysqldump倒出的数据库备份如何在装入Mysql数据库??
where ID=(select max(goods_attr_id)from tb where Name=a.Name) order by goods_attr_id;
我说的简单一些。就是取出attr_value值同时是SM和4L的数据。之所以是goods_id是1035,那是因为它的attr_value值那即是4L也是SM。
我写的SQL如下,但不好用。
SELECT * FROM table WHERE attr_value='4L' OR attr_value='SM'
WHERE attr_id =153 and attr_value='4L'
and exists (select 1 from 表名 where attr_id =151 and attr_value='SM' and goods_id =t.goods_id )