Mysql如何优雅地查询productType字段取值为1, 2, 3的数据?

有个productType字段, 代表商品类型,可能的取值为1~10
怎么写SQL来查询type为某些值的数据
比如查询type为 1,4,7的数据(1,4,7为动态,每次不相同,也可能为2,5,8,9……)
除了以下两种方式还没有有其他方式?
in (1, 4, 7)
type = 1 or type = 4 or type = 7

2个回答

大头,你是不是工作量不够闲的。。。

w405722907
马大头 回复子系天下: 好吧,我就是想看看还有没有更好的办法
4 个月之前 回复
qq_33427422
子系天下 回复马大头: 从你的业务要求来说,从性能角度考虑,用in是最简写法(我个人是这么认为的)
4 个月之前 回复
w405722907
马大头 请问还有其他方法吗,感觉这两种不是最优方法,写起来很麻烦
4 个月之前 回复

你这问题问的,你是不是还有个获取type的方法,然后把这个结果用来作为type的条件,这里不知道设计?

weixin_42080504
have_power 回复马大头: 哈哈...
4 个月之前 回复
w405722907
马大头 回复have_power: 可以可以, 有想法,数据量大的时候这个方法应该不错
4 个月之前 回复
weixin_42080504
have_power 回复马大头: 你生成数组,我觉得到mysql里的话,肯定是需要二次处理的,你为啥不生成一个表呢?表里就一个字段type,然后一个条件一行,比如说123,那就三行。然后你就可以用你生成的这个表和你的数据表关联,关联条件就是type和你的producttype,结果不就出来了。
4 个月之前 回复
w405722907
马大头 差不多吧,每次动态生成type的数组, 比如[1,2,3] 或者 [2,5,6,7]……然后根据这个type数组中的元素进行查询
4 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
MySQL查询字段为纯数字的数据
select * from table where (loginname REGEXP '[^0-9.]')=0 and createtime > '2018-12-01';
Informix中支持Insert into 表名(字段1,字段2,字段3) select '1', '2', '3'吗
Informix中支持Insert into 表名(字段1,字段2,字段3) select '1', '2', '3'吗???
MySQL查询之字段查询
本教程从基础的MySQL开始介绍,到SQLServer,然后Oracle,让学员能够从易到难,从Java或PHP语言到.Net数据库的灵活使用。其中分库介绍了,各个数据库的基本独立使用,以及各自的安装和配置。课程中主要是以SQL脚本为基础同时介绍非常实用性的脚本使用。例如:层次化查询,正则表达式以及技巧性函数等等。
如何从mysql 字段中提取值..
假如有表 userinfo有个字段rnid addressrn1 省:四川;市:成都;县:XX;邮编:61000rn2 省:黑龙江;县:未知;邮编:20000rnrn我想查询得到:rnid postrn1 61000rn2 20000rnrn如何操作?
如何「优雅」地标数据
最近想做一个识别验证码的程序。目标其实很简单,就是识别出某网站验证码的字母和数字。这种类型的验证码已经被做烂了,相应的破解程序也很多。但我只是想学习消遣一下。
Mysql如何查询字段的注释
如题 Mysql如何查询字段的注释rn还有 sybase的 那位高手知道请告诉我
1为数据库查询的数据中加一排序号,2判断为查询出来的字段赋值
@Override public String getSqlByFileCodeForExport(String strTime, String strCompany) { StringBuffer strSb = new StringBuffer(); //加序号代码 strSb.append("select a.*,concat((@i :
Mysql里查询字段为Json格式的数据模糊查询方法
json表里面有个content字段数据如下面的Json格式 {"eq":{"f_1360040399":"admin","f_3038116851":"20","f_318208994":"admin@localhost.com"}} 需要对其中的f开头的Json key值所对的value进行模糊查询,方法如下: select * from table where content->'$.
mysql 关于hibernate查询(字段数据为空值)
table newsrn字段rn--id--newsTitle(varchar)--newsFrom(varchar)rnrnrn代码:rnpublic class DaoTest rnrn public static void main(String[] args) rn Session session = HibernateUtil.getSession();rn Transaction tx = null;rn try rn tx=session.beginTransaction(); rn String kew1=null;rn String kew2="";rn Query query=session.createQuery("from Tnews t where t.newsFrom ='"+kew1+"'");rn List list=query.list();rn System.out.println(list.size());rn tx.commit();rn catch (HibernateException e) rn e.printStackTrace();rn if (tx!=null) rn tx.rollback();rn rn finally rn HibernateUtil.closeSession();rn rn rnrnrnrnrnrn如:rnmysql query browser 窗口rnnewssFromrn--娱乐头条rn--NULLrn-- rn--新闻早报rn--NULLrn--电影快报rn--NULLrn--南国早报rn--rn--广州日报rnrnrn本人想查询字段newsFrom为空值或者无数据的 也就是没新闻来源的 新闻;rn当取值kew1时,查询数据为0;rn当取值kew2时,可以查出数据来,但不是我想要的,也就是查到2条数据,我想要查的是包含上面显示为NULL的的数据。,结果应该为5才行。rnrn请问我错在那里,或者如何写sql查询语句等!rn
mysql 查询某个字段为空或不为空的数据
mysql 查询某个字段为空或不为空的数据 某个字段为空的数据:select * from evt_t_pub_audit_msg_report where userName is null or trim(userName)=''; 某个字段不为空的数据:select * from evt_t_pub_audit_msg_report where trim(userName)!=''...
mysql 大字段取值问题
有如下表记录rnmysql> select * from test;rn+------+-----------------------+--------+rn| id | link | status |rn+------+-----------------------+--------+rn| 1 | 31,20,40 | 1 | rn| 2 | 31,20,40,34,32,91,109 | 0 | rn| 2 | 31,20,40,34,32 | 1 | rn| 4 | 31,20,40,34,32,49 | 0 | rn+------+-----------------------+--------+rn我想取到状态为0的,link值记录40以后的那些记录值,就是要取到32,34,49,91,109rn该如何取到?SQL怎么实现?
说说 MySQL 自增字段取值
1 前言 本文来自回答思否网友的一个问题,这个网友新建了一张表,auto_increment_increment设为10,AUTO_INCREMENT主键起始值设为9, 当他插入数据的时候,发现主键值是从11开始的,所以产生了疑惑。这篇文章一起来讨论一下自增字段问题。 2 自增字段计算方式 自增字段取值和auto_increment_in...
MySQL查询字段为null的记录
mysql要是查找某一字段为null的记录, 不能使用 字段名=null 的格式,要使用 is null select * from user where name is null;
mysql 查询字段为null转换方法
多表联查时,如果碰到有的字段为空的话,将它转化成其它值的方法,比如 select id,user,phone,ifnull(sex,0) as sex from user  
mysql查询字段值为空的记录
如果字段类型是char和varchar型用 字段名=''就可以; 如果是int型用 ISNULL(字段名)=1即可。
mysql原生查询是否为空的字段
mysql原生查询是否为空的字段
MySQL 查询某一字段是否为NULL
****MySQL中查询某一字段是否NULL,切记不可用 =NULL 或者 !=NULL,正确的方式是is null 或者 is not null 1、查询user表中的user_mobile不是NULL的数据 select * from user where user_mobile is not null; 2、查询user表中的user_mobile是NULL的数据 select * ...
如何优雅安全地在深层数据结构中取值
古有赵子龙面对“冲锋之势,有进无退,陷阵之志,有死无生”的局面,能万军丛中取敌将首级。在我们的Javascript中,往往用对象(Object)来存储一个数据结构。如果这个结构非常复杂,那么想要安全优雅地取出一个值,也并非简单。 这篇文章将会详细阐述在一个嵌套较深的场景中,如何安全的完成读写操作。先后会尝试多种方法,希望对读者有所启发。 ...
关于order by (case when 条件1 then 字段1 else 字段3),字段1,字段2,字段3)
请蒋老师、马可、邹建帮讲解一下它的排序规律是怎样的,好吗?我实在想不明白。最好从原理上分析一个,算我求你们了。
Sgn(3 > 2)为何返回值为 -1?
看说明 Sgn(number)rnrnnumber > 0 返回1rnnumber = 0 返回0rnnumber < 0 返回-1rnrn为何Sgn(3 > 2)返回-1 ?
MySQL 2表及3表查询
当一个表的主键是另一个表的外键时,2表之间的数据就可以关联起来查询 数据库连接分4种:   (INNER )JOIN:如果表中有至少一个匹配,则返回行   LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行   RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行   FULL JOIN:只要其中一个表中存在匹配,则返回行   以 INNER 为例,查询2表...
mysql json数组取值、查询的问题
数据表rnrnid uid inforn1 1001 "name":"周年庆","status":0,"addtime":"2017-10-10"rn2 1002 [ "name":"周年庆","status":0,"addtime":"2017-10-11","name":"特价促销","status":0,"addtime":"2017-10-12"]rn3 1003 [ "name":"特价促销","status":0,"addtime":"2017-10-12","name":"国庆促销","status":0,"addtime":"2017-09-28"]rnrnrn对mysql如何筛选查询 数组里面的值rn比如我想取得参加特价促销的用户数据,改怎么写查询语句
如何update表1的字段D=表2的字段D的值, 当表1的字段1、字段2、字段3的值都同时与表2的字段1、字段2、字段3的值相同?
如何update表1的字段D=表2的字段D的值,且表1的字段E='1', 当表1的字段1、字段2、字段3的值都同时与表2的字段1、字段2、字段3的值相同?
我在A库中有表1(字段1主键,字段2,字段3),B库中表2(字段1主键,字段2,字段3),表1与表2的结构相同,数据数相同,现要将B库中的字段0
我在A库中有表1(字段1主键,字段2,字段3),B库中表2(字段1主键,字段2,字段3),表1与表2的结构相同,数据数相同,现要将B库中的字段字段3,修改成相对应的A库中字段3,请怎么在同一服务器下作跨数据库操作?rnrn谢谢
3字段查询
表名 biaomingrn字段(单号是 数字+字母)rn单号1 onumbersrn单号2 tnumbersrn单号3 snumbersrn要实现功能: 单号1 或者 单号2 或者 单号3 随便放进哪个单号,查询出这个id的参数rnrn<% rnid=request("id")rnif id=" " thenrnResponse.Write " "rnResponse.End()rnend ifrnexec="select * from biaoming where 'onumbers or tnumbers or snumbers'='"&id&"' "rnset rs=server.createobject("adodb.recordset") rnrs.open exec,conn,1,1 rnif rs.eof and rs.bof thenrnResponse.Write " "rnResponse.End()rnend if rn%>
TP5查询字段值为NULL的数据
TP5查询字段值为NULL的数据 1.查询字段值为NULL 原生SQL语句为: 2.查询字段值不为NULL的数据 原生SQL语句为:
linq查询某个字段为null的数据
如tb_flag 数据结构如下rnflag int nullrnrn如何用linq查询flag为null的数据rnrnflag==null 生成的sql 语句为 where flag=null sql里面貌似 flag is null才能查询出null的数据。 求解答。
thinkphp查询某个字段为空的数据
序:由于我们在查询数据时,常常会使用['eq','']或者array('eq','')的写法,查询数据无法获取想要的结果。以下方法完美解决了这个问题。 $where['name'] = array('exp', 'is null'); //为空的 $where['name'] = array('exp', 'is not null'); //不为空的 ...
如何查询为空的数据?
[code=SQL]rnSELECT l.*,Dev.*,lt.*,DT.*,ORG.* FROM LogList l, DevList Dev,LogType lt,DevType DT,OrgList ORGrn WHERE l.DevCode=Dev.DevCode AND l.LogTypeID=lt.LogTypeID AND Dev.DevType=DT.DevTypeID orrn AND l.OrgCode=ORG.OrgCode;rn[/code]rn四个表联合查询,但是Loglist.DevCode,orgcode可能会为空,rn[code=SQL]rnSELECT l.*,Dev.*,lt.*,DT.*,ORG.* FROM LogList l, DevList Dev,LogType lt,DevType DT,OrgList ORGrn WHERE l.DevCode=Dev.DevCode AND l.LogTypeID=lt.LogTypeID AND Dev.DevType=DT.DevTypeID orrn AND l.OrgCode=ORG.OrgCode or (l.devcode is null)or(l.orgcode is null)rn[/code]rn这样好像不对,应该如何写呢?
请问字段1和字段2内容合并生成新字段3,mysql语句怎么写
请问字段1和字段2内容合并生成新字段3,mysql语句怎么写.谢谢!rnrn例如:rn表1rn字段1 字段2rn小王 你好rn小陈 再见rnrn目标:rn表1rn字段3rn小王你好rn小陈再见
Mysql查询某字段值重复的数据
Mysql查询某字段值重复的数据 查询event表中,code_num字段值重复的数据及重复次数 select code_num, count(*) as count from event WHERE accept_code_year group by code_num having count&gt;1; ...
mysql中如何查询varchar类型字段为空的纪录
设置条件为:rnnull,NULLrn"",''rn均告失败,就是查询不出来rnrn惭愧~这问题貌似有些弱智rn
如何update表1的字段D='2', 当表1的字段1、字段2、字段3的值都同时与表2的字段1、字段2、字段3的值相同?
如何update表1的字段D='2', 当表1的字段1、字段2、字段3的值都同时与表2的字段1、字段2、字段3的值相同?
11、mysql数据表中数据的查询(3)
说一下子查询,子查询的意义就是使用一个查询语句做为另一个查询语句的条件,一般使用exists和in来引导子查询 exists子查询 exists 放在 where 之后使用,可以看成查询数据所满足的一个条件,只是这个条件的值比较特殊(true或false),当子查询返回 数据时则结果为true,没有数据时结果为false 使用exists子查询时,一般使用到了外表中的字段作为子查询的条件 ...
mysql 查询3天之内的数据
SELECT * FROM Session where createTime &amp;gt;= now()-interval 3 day;  
mysql如何查询特定的数据
![图片说明](https://img-ask.csdn.net/upload/201612/27/1482806785_231062.jpg)nn如上图,如何获取gid不重复的数据(取得下图的查询结果):nn![图片说明](https://img-ask.csdn.net/upload/201612/27/1482806971_430237.jpg)
mysql如何查询同一天的数据
mysql如何查询同一天的数据,不用准确时间只用日子,就是给一个时间段,是同一天,如"from <= '2007-10-08 ' to >= '2007-10-08 '” 我需要给它开始和结束的日期,如“from <= '2007-10-08 ' to >= '2007-10-08 '”
字段为空的查询
在Vb中如何用SQL语言查询某一字段值为空的记录,多谢!
如何让1,2,3,4,5显示为1 or 2 or 3 or 4 or 5
rn如何让字段Sj的值1,2,3,4,5显示为1 or 2 or 3 or 4 or 5
shell编程中,如何合并$1、$2文件为$3
shell编程中,如何合并$1、$2文件为$3,或者是如何改变$3的值呢?
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数