为了账号安全,请及时绑定邮箱和手机立即绑定

sql语句处理问题

sql语句处理问题

PHP
HUH函数 2019-03-07 12:46:25
如下:有张表 id sql_field 1 SELECT * FROM (`abc`) WHERE (telnu = "1" OR telnum2 = "2") ORDER BY `lastupdate` DESC; 2 SELECT * FROM (`abc`) WHERE (telnu = "1" OR telnum2 = "22") ORDER BY `lastupdate` DESC; 3 SELECT * FROM (`abc`) WHERE (telnu = "1" OR telnum2 = "12") ORDER BY `lastupdate` DESC; 4 SELECT * FROM (`abc`) WHERE (telnu = "1" OR telnum2 = "42") ORDER BY `lastupdate` DESC; 5 SELECT * FROM cdb WHERE digest<10 AND displayorder >=43 AND fid=55 ORDER BY tid DESC LIMIT 0, 10; 6 SELECT * FROM cdb WHERE digest>30 AND displayorder >=12 AND fid=55 ORDER BY tid DESC LIMIT 0, 10; 7 SELECT * FROM cdb WHERE digest>10 AND displayorder >=2 AND fid=55 ORDER BY tid DESC LIMIT 0, 10; 。 。 。 里面的sql_field 字段中有很多类似但不重复的查询语句,怎么样一个类型的查询语句只保留一个呢,求指导
查看完整描述

4 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

把变动的数量当做参数传入查询语句中,比如第一类的telnutelnum2,每次调用的时候传入具体的查询值即可

查看完整回答
反对 回复 2019-03-18
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

SELECT * FROM (`abc`) WHERE telnu = "1" OR telnum2 in("2","22","12","42") ORDER BY `lastupdate` DESC; 
SELECT * FROM cdb WHERE ( (digest<10 AND displayorder >=43) OR (digest>30 AND displayorder >=12) OR (digest>10 AND displayorder >=2) ) AND fid=55 ORDER BY tid DESC LIMIT 0, 10; 
查看完整回答
反对 回复 2019-03-18
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

between($xxx)

查看完整回答
反对 回复 2019-03-18
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

跟题主说一下,
凌丶这个答案是不对的,between是在一个范围内,此处应该用in,一楼是正解

查看完整回答
反对 回复 2019-03-18
  • 4 回答
  • 0 关注
  • 514 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信