阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

老司机
查看: 1693|回复: 3

[转帖] 6个有用的MySQL语句

[复制链接]
  • TA的每日心情
    开心
    2012-3-7 10:15
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2012-2-7 15:33:06 | 显示全部楼层 |阅读模式
    以前本站给大家介绍过《MySQL性能优化的最佳20+条经验》,今天给大家介绍六条比较有用的MySQL的SQL语句,可能很多人都通过PHP来实现这些功能。
        1. 计算年数
        你想通过生日来计算这个人有几岁了。
        SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(now()) - TO_DAYS(@dateofbirth)), '%Y') + 0;
        2. 两个时间的差
        取得两个 datetime 值的差。假设 dt1 和 dt2 是 datetime 类型,其格式为 ‘yyyy-mm-dd hh:mm:ss’,那么它们之间所差的秒数为:
        UNIX_TIMESTAMP( dt2 ) - UNIX_TIMESTAMP( dt1 ) 除以60就是所差的分钟数,除以3600就是所差的小时数,再除以24就是所差的天数。
        3. 显示某一列出现过N次的值
        SELECT id
        FROM tbl
        GROUP BY id
        HAVING COUNT(*) = N;
        4. 计算两个日子间的工作日
        所谓工作日就是除出周六周日和节假日。
        SELECT COUNT(*)
        FROM calendar
        WHERE d BETWEEN Start AND Stop
        AND DAYOFWEEK(d) NOT IN(1,7)
        AND holiday=0;
        5. 查找表中的主键
        SELECT k.column_name
        FROM information_schema.table_constraints t
        JOIN information_schema.key_column_usage k
        USING (constraint_name,table_schema,table_name)
        WHERE t.constraint_type='PRIMARY KEY'
        AND t.table_schema='db'
        AND t.table_name=tbl'
        6. 查看你的数库有多大
        SELECT
        table_schema AS 'Db Name',
        Round( Sum( data_length + index_length ) / 1024 / 1024, 3 ) AS 'Db Size (MB)',
        Round( Sum( data_free ) / 1024 / 1024, 3 ) AS 'Free Space (MB)'
        FROM information_schema.tables
        GROUP BY table_schema ;
    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2016-4-22 15:19
  • 签到天数: 101 天

    [LV.6]常住居民II

    发表于 2015-6-2 12:28:42 | 显示全部楼层
    呵呵 说的很好,就是有些太繁琐了,不太好学
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2021-1-17 17:06
  • 签到天数: 914 天

    [LV.10]以坛为家III

    发表于 2015-7-13 09:27:47 | 显示全部楼层
    谢谢楼主。谢谢楼主。谢谢楼主。
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表