热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

thinkphp3.2.3连惯写法

这句话换成连贯操作,对新手来说很难,望高手指点{代码...}
这句话换成 连贯操作 ,对新手来说 很难,望高手指点

SELECT * FROM `hx_shop_period` WHERE ( id in ( SELECT DISTINCT  `pid` FROM `hx_shop_record` WHERE ( uid=101600 ) ORDER BY create_time desc  ) ) ORDER BY state asc,end_time desc LIMIT 0,20

回复内容:

这句话换成 连贯操作 ,对新手来说 很难,望高手指点

SELECT * FROM `hx_shop_period` WHERE ( id in ( SELECT DISTINCT  `pid` FROM `hx_shop_record` WHERE ( uid=101600 ) ORDER BY create_time desc  ) ) ORDER BY state asc,end_time desc LIMIT 0,20

//获取一个sql语句而不执行
$sub_query = M()->table('hx_shop_record')->distinct(true)->field('pid')->where(['uid'=>101600])->order('create_time DESC')->buildSql();
//使用子查询作为条件,获取结果
$rst = M()->table('hx_shop_period')->where('id in ' .$sub_query)->order('state ASC,end_time DESC')->limit(0,20)->select();

在主流的数据库操作类库中都会有连贯操作的功能,其实并不麻烦,反而还非常好用.好处有:
1.不用记sql子语句的顺序
2.避免注入风险
3.封装了一些常用的方法,使用简单
4.多次拼装最后执行,可以组织复杂的语句

$res = $model->field('pid')->where('uid=101600')->order('create_time desc')->select(false);
$where['id'] = array('IN',$res)
$this->where($where)->order('state asc,end_time desc')->limit(0,20)->select();

好吧,其实我也没碰到这种,上面是看文档凭经验大概写的。
我直接推荐你用 $Model->query(原生SQL)

推荐阅读
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 2023年1月28日网络安全热点
    涵盖最新的网络安全动态,包括OpenSSH和WordPress的安全更新、VirtualBox提权漏洞、以及谷歌推出的新证书验证机制等内容。 ... [详细]
  • 在使用mybatis进行mapper.xml测试的时候发生必须为元素类型“mapper”声明属性“namespace”的错误项目目录结构UserMapper和UserMappe ... [详细]
  • 美团安全响应中心推出全新配送业务测试活动,带来双重福利,邀您共同参与! ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 探讨密码安全的重要性
    近期,多家知名网站如CSDN、人人网、多玩、开心网等的数据库相继被泄露,其中大量用户的账户密码因明文存储而暴露无遗。本文将探讨黑客获取密码的常见手段,网站如何安全存储用户信息,以及用户应如何保护自己的密码。 ... [详细]
  • 本文介绍如何通过参数化查询来防止SQL注入攻击,确保数据库的安全性。示例代码展示了在C#中使用参数化查询添加学生信息的方法。 ... [详细]
  • Vulnhub DC3 实战记录与分析
    本文记录了在 Vulnhub DC3 靶机上的渗透测试过程,包括漏洞利用、内核提权等关键步骤,并总结了实战经验和教训。 ... [详细]
  • 本文基于最新版SQLite 3.33.0(发布于2020年8月20日),详细介绍如何使用ORDER BY语句进行数据排序,包括单列和多列排序的方法。 ... [详细]
  • 汇总了2023年7月7日最新的网络安全新闻和技术更新,包括最新的漏洞披露、工具发布及安全事件。 ... [详细]
  • TCP协议中的可靠传输机制分析
    本文深入探讨了TCP协议如何通过滑动窗口和超时重传来确保数据传输的可靠性,同时介绍了流量控制和拥塞控制的基本原理及其在实际网络通信中的应用。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • 本文将在前几篇关于Android测试理论知识的基础上,通过ApiDemoTest实例详细探讨如何使用ApplicationTestCase进行Android应用测试。建议读者先阅读Android测试教程系列中的相关内容,以便更好地理解本文的实践部分。 ... [详细]
  • 本文介绍了一个使用Spring框架和Quartz调度器实现每周定时调用Web服务获取数据的小项目。通过详细配置Spring XML文件,展示了如何设置定时任务以及解决可能遇到的自动注入问题。 ... [详细]
author-avatar
布景tamimi_498
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有