SQL让你的查询变得更简单

发表于:2016-11-28 10:20

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:IT985博客    来源:51Testing软件测试网采编

  小编最近开发的一些项目中,遇到很多奇葩的问题,最多的问题也就是对数据库的查询操作问题了,现在列举一些开发中遇到的sql
  1、查询时间,毋庸置疑,每个程序中都会涉及的一些问题, 比如查询今天的数据统计:
  SELECT COUNT(sign_id) FROM table WHERE DATE_FORMAT(sign_at, ‘%Y-%m-%d’) = DATE_FORMAT(DATE(NOW()), ‘%Y-%m-%d’) AND id =XX;
  这条sql语句就是用来统计今天的一些数据的;
  SELECT COUNT(id) FROM contacts_view WHERE created_at >= ( CURDATE() – INTERVAL 15 DAY )
  这条sql语句就是用来统计15天的一些数据的;一次类推 3天, 5天, 9天;
  类似还有
  2、SELECT * FROM 表 WHERE datediff(month,[dateadd],getdate())=0
  查询本月的记录等等;
  3、查询附近的人,一直以来对微信的附近的人比较好奇,今天也碰到这方面的问题,在师傅(主管)的帮助下找到这条语句.
  SELECT user_id, ( 6731 * acos( cos( radians($lat) ) * cos( radians( lat ) ) * cos( radians( lng ) – radians($lng) ) + sin( radians($lat) ) * sin( radians( lat ) ) ) ) AS distance FROM user WHERE user_id != ? AND status = 1 AND lng IS NOT NULL AND lat IS NOT NULL ORDER BY distance
  这条语句就轻松地解决了附近的人的问题,其中主要依赖的还是语句中的经纬度.来查找的;
  4、正则表达式在php, js等中都是非常常见的一个表达式.我们可以用正则表达式来检验手机号码,身份证号码,邮箱等功能,其实sql语句也是可以实现正则匹配来达到查询效果的.sql语句中的正则匹配符号为”REGEXP “, 其实类似于sql中的like.
  例如:
  SELECT name FROM user WHERE name REGEXP ‘galen’;
  查询表中所有名字
  包含galen的所有用户,是不是要比like好用多了呢!好了今天小编对这次项目的关于遇到的sql的问题进行了一些总结,希望能帮助到大家。也希望大家可以一起合作交流.提升技术
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号