跳到内容
当前位置:首页>Excel>第376讲:Python和Excel VBA两种技术路线数据清洗:手机、邮箱、公司名、日期标准化

第376讲:Python和Excel VBA两种技术路线数据清洗:手机、邮箱、公司名、日期标准化

  • 2026-09-23 02:39:31
第376讲:Python和Excel VBA两种技术路线数据清洗:手机、邮箱、公司名、日期标准化

在日常的CRM(客户关系管理)或ATS(申请人追踪系统)运营中,从系统导出客户或候选人数据几乎是每个运营、销售或HR每周都要面对的工作。

然而,导出的原始数据往往令人头疼:手机号里夹杂着空格和括号、邮箱地址大小写混乱、公司名称缩写不统一、日期格式五花八门(比如“2023/12/1”、“01-Dec-23”、“2023年12月1日”混在同一列)。这些“脏数据”如果直接导入CRM,不仅影响数据分析的准确性,还可能导致邮件发送失败、客户跟进遗漏等严重问题。

今天,我们就以“数据清洗:手机、邮箱、公司名、日期标准化”为主题,通过PythonExcel VBA两种技术路线,手把手教你如何将这些杂乱的数据标准化,输出可直接导入CRM的干净表格。文章不仅会给出具体的实现代码,还会深入对比两种方案的优劣,并在文末附上5道选择题帮你巩固知识点。


一、痛点拆解:四类字段的清洗规则

在开始写代码之前,我们需要明确每一类字段的标准化目标。

1. 手机号清洗

常见脏数据138 1234 5678(086)138-1234-5678+86 13812345678138****5678(脱敏)。

标准化目标:统一为纯数字字符串,如13812345678;或根据业务需求,统一为带国际区号的格式+8613812345678

规则:去除所有非数字字符(除开头的“+”号外),然后根据长度判断是否添加国家码。

2. 邮箱清洗

常见脏数据Zhang.San@Example.COMlisi@company.com(前后空格)、wangwu@company..com(多余点号)。

标准化目标:全部转为小写,去除首尾空格,修正明显的输入错误(如连续点号)。

规则strip()lower()+ 正则替换多余符号。

3. 公司名清洗

常见脏数据阿里巴巴阿里巴吧(错别字)、Tencent腾讯并存、XX公司XX有限责任公司混用。

标准化目标:去除前后空格,统一使用规范全称或常用简称,修正明显错别字。

规则:建立映射字典(如{"腾讯": "Tencent", "阿里巴吧": "阿里巴巴"}),利用模糊匹配或精确替换。

4. 日期标准化

常见脏数据2023/12/101-Dec-232023年12月1日20231201

标准化目标:统一转为YYYY-MM-DD格式(如2023-12-01),并转换为真正的日期类型,方便后续排序和计算。

规则:利用日期解析函数,处理多种格式,无法解析的标记为缺失值。


二、Python实现:pandas + regex 批量清洗

Python在数据处理上的优势是批量、自动化和可复现。我们主要使用pandas进行表格操作,re模块处理正则,apply或向量化方法进行批量转换。

1. 手机号清洗函数

import redef clean_phone(phone):    if pd.isna(phone):        return None    phone = str(phone)    # 保留开头的+号,其余只留数字    plus_prefix = '+' if phone.startswith('+'else ''    digits = re.sub(r'\D''', phone)    # 如果原号码没有+但长度是11位且以1开头,假设是中国手机    if not plus_prefix and len(digits) == 11 and digits.startswith('1'):        return digits    # 如果有+86,去除+86后保留11位    if plus_prefix and digits.startswith('86'and len(digits) > 2:        digits = digits[2:]    return plus_prefix + digits if plus_prefix else digits

讲解re.sub(r'\D', '', phone)是核心,它移除了所有非数字字符。\D在正则中表示“非数字”。我们单独处理了“+”号,避免国际号码被误伤。

2. 邮箱清洗函数

def clean_email(email):
    if pd.isna(email):
        return None
    email = str(email).strip().lower()
    # 替换连续的点为单个点
    email = re.sub(r'\.{2,}', '.', email)
    # 简单验证格式
    if re.match(r'^[^@]+@[^@]+\.[^@]+$', email):
        return email
    return None  # 无效邮箱返回空

3. 公司名清洗:映射表 + 模糊匹配

精确替换适合已知错误,对于未知变体,可以使用fuzzywuzzy库进行模糊匹配(需安装)。这里展示基础映射:

company_map = {    '阿里巴吧''阿里巴巴',    '腾讯科技''腾讯',    'tencent''腾讯'}def clean_company(name):    if pd.isna(name):        return None    name = str(name).strip()    return company_map.get(name, name)  # 找不到则返回原值

4. 日期标准化:pd.to_datetime 的威力

def clean_date(date_str):    if pd.isna(date_str):        return None    try:        # dayfirst=False 避免将01/02/2023解析为2月1日        return pd.to_datetime(date_str, errors='raise', dayfirst=False).strftime('%Y-%m-%d')    except:        return None  # 解析失败返回空

pd.to_datetime非常强大,能自动识别多种格式。设置errors='raise'可以捕获异常,避免程序中断。

5. 批量清洗完整流程

import pandas as pd# 读取脏数据df = pd.read_excel('dirty_data.xlsx')# 应用清洗函数df['clean_phone'] = df['phone'].apply(clean_phone)df['clean_email'] = df['email'].apply(clean_email)df['clean_company'] = df['company'].apply(clean_company)df['clean_date'] = df['date'].apply(clean_date)# 生成脏数据报告:哪些行有缺失dirty_report = df[df.isnull().any(axis=1)]print(f"发现 {len(dirty_report)} 行存在清洗失败或缺失值")# 输出干净数据df.to_excel('clean_data.xlsx', index=False)

干货提示:在生产环境中,建议将清洗规则(如公司名映射表)存储在外部Excel或数据库中,方便业务人员维护,而不需要修改代码。


三、VBA实现:RegExp + 自定义函数在Excel内清洗

如果你的数据量不大(几千行以内),或者团队没有Python环境,使用Excel VBA是一个“轻量级”选择。你可以直接在表格里加一个【清洗】按钮,点击即完成。

1. 启用正则支持

VBA中使用正则需要先引用Microsoft VBScript Regular Expressions 5.5(在VBA编辑器中点“工具”->“引用”勾选),或者使用晚期绑定。下面我们用晚期绑定,避免引用问题。

2. 手机号清洗函数

Function CleanPhone(phone As String) As String    Dim reg As Object    Set reg = CreateObject("VBScript.RegExp")    reg.Pattern = "[^\d+]"    reg.Global = True    ' 先提取所有数字和开头的+    Dim digits As String    digits = reg.Replace(phone, "")    ' 简单处理:如果11位且以1开头,直接返回    If Len(digits) = 11 And Left(digits, 1= "1" Then        CleanPhone = digits    Else        CleanPhone = digits ' 可根据需要扩展    End IfEnd Function

3. 邮箱清洗函数

Function CleanEmail(email As String) As String    If IsNull(email) Or email = "" Then Exit Function    Dim reg As Object    Set reg = CreateObject("VBScript.RegExp")    ' 去除首尾空格并小写    CleanEmail = LCase(Trim(email))    ' 替换连续点为单点    reg.Pattern = "\.{2,}"    reg.Global = True    CleanEmail = reg.Replace(CleanEmail, ".")End Function

4. 公司名清洗与日期处理

公司名清洗同样可以用Select Case或字典,这里略。日期方面,VBA的CDate函数可以转换一些常见格式,但容错性较差。更稳健的做法是分列解析:

FunctionCleanDateVBA(dateStr As String)AsDate    On Error Resume Next    CleanDateVBA = CDate(dateStr)    If Err.Number <> 0 Then        CleanDateVBA = #1/1/1900# ' 错误日期用默认值,或返回空    End If    On Error GoTo 0End Function

5. 在Excel中批量运行

你可以写一个简单的子过程,遍历选中区域并调用上述函数,将结果输出到相邻列。然后插入一个按钮,将宏指定给该按钮,实现“一键清洗”。


四、Python vs VBA:对照与选型建议

维度

Python (pandas)

VBA (RegExp)

批量处理

轻松处理百万行,向量化速度快

万行以上可能卡顿,循环较慢

正则能力

功能完整,支持复杂模式

功能足够,但语法稍显陈旧

日期解析

to_datetime自动识别多种格式,强大

CDate依赖系统区域,容易出错

可维护性

代码即文档,规则易版本控制

代码藏在文件内,分享需启用宏

适用场景

数据量大、需自动化流水线、复杂清洗

数据量小、需与Excel深度交互、临时清洗

结论:如果你需要定期处理大量数据,或者清洗规则复杂,Python是更好的选择;如果你只是偶尔在Excel里处理几千行数据,且希望业务人员能自己点击按钮完成,VBA更合适。

五、交付物清单

一个完整的数据清洗项目,交付物不应只是“干净数据”,还应包括:

  1. 清洗规则表:记录每条字段的清洗逻辑、正则表达式、映射关系。

  2. 脏数据报告:列出清洗失败或存在缺失值的原始记录,方便人工核查。

  3. 干净数据:标准化后的表格,可直接导入CRM。


六、选择题(答案见文末)

  1. 在Python中,使用re.sub(r'\D', '', '+86-13812345678')会得到什么结果?

    A. +8613812345678

    B. 8613812345678

    C. 13812345678

    D. 报错

  2. 关于pd.to_datetime函数,下列说法错误的是?

    A. 可以自动解析多种日期格式

    B. 参数errors='coerce'会将无法解析的日期转为NaT

    C. 它只能解析YYYY-MM-DD格式

    D. 返回的是Timestamp对象或NaT

  3. 在VBA中,使用正则表达式去除字符串中所有非数字字符,正确的Pattern是?

    A. \d

    B. [^0-9]

    C. \D

    D. [0-9]

  4. 邮箱标准化时,通常不需要进行的操作是?

    A. 转为小写

    B. 去除首尾空格

    C. 验证格式合法性

    D. 将域名部分转为大写

  5. 对于公司名称“阿里巴吧”,最合适的清洗方法是?

    A. 使用模糊匹配或映射表替换为“阿里巴巴”

    B. 直接删除该行数据

    C. 保留原样,因为不影响分析

    D. 使用pd.to_datetime解析


答案

  1. B (\D匹配非数字,+-被移除,但开头的+也被移除了,因为\D包括+

  2. C (pd.to_datetime支持多种格式,并非只能解析一种)

  3. B ([^0-9]表示非数字字符,VBA的RegExp中\d\D也可用,但B是明确写法)

  4. D (域名部分应小写,转为大写不符合规范)

  5. A

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-09-23 03:01:21 HTTP/1.1 GET : http://h.sjds.net/a/558804.html
  2. 运行时间 : 0.071237s [ 吞吐率:14.04req/s ] 内存消耗:4,444.02kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=58d105f8dc69a0c9154b27bf8e7aeafc
  1. /www/wwwroot/h.sjds.net/public/index.php ( 0.79 KB )
  2. /www/wwwroot/h.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /www/wwwroot/h.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /www/wwwroot/h.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /www/wwwroot/h.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /www/wwwroot/h.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /www/wwwroot/h.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /www/wwwroot/h.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /www/wwwroot/h.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /www/wwwroot/h.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /www/wwwroot/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /www/wwwroot/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /www/wwwroot/h.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /www/wwwroot/h.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /www/wwwroot/h.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /www/wwwroot/h.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /www/wwwroot/h.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /www/wwwroot/h.sjds.net/app/provider.php ( 0.19 KB )
  23. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /www/wwwroot/h.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /www/wwwroot/h.sjds.net/app/common.php ( 0.03 KB )
  27. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /www/wwwroot/h.sjds.net/config/app.php ( 0.95 KB )
  30. /www/wwwroot/h.sjds.net/config/cache.php ( 0.78 KB )
  31. /www/wwwroot/h.sjds.net/config/console.php ( 0.23 KB )
  32. /www/wwwroot/h.sjds.net/config/cookie.php ( 0.56 KB )
  33. /www/wwwroot/h.sjds.net/config/database.php ( 2.48 KB )
  34. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /www/wwwroot/h.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /www/wwwroot/h.sjds.net/config/lang.php ( 0.91 KB )
  37. /www/wwwroot/h.sjds.net/config/log.php ( 1.35 KB )
  38. /www/wwwroot/h.sjds.net/config/middleware.php ( 0.19 KB )
  39. /www/wwwroot/h.sjds.net/config/route.php ( 1.89 KB )
  40. /www/wwwroot/h.sjds.net/config/session.php ( 0.57 KB )
  41. /www/wwwroot/h.sjds.net/config/trace.php ( 0.34 KB )
  42. /www/wwwroot/h.sjds.net/config/view.php ( 0.82 KB )
  43. /www/wwwroot/h.sjds.net/app/event.php ( 0.25 KB )
  44. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /www/wwwroot/h.sjds.net/app/service.php ( 0.13 KB )
  46. /www/wwwroot/h.sjds.net/app/AppService.php ( 0.26 KB )
  47. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /www/wwwroot/h.sjds.net/vendor/services.php ( 0.14 KB )
  53. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /www/wwwroot/h.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /www/wwwroot/h.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /www/wwwroot/h.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /www/wwwroot/h.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /www/wwwroot/h.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /www/wwwroot/h.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /www/wwwroot/h.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /www/wwwroot/h.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /www/wwwroot/h.sjds.net/app/Request.php ( 0.09 KB )
  84. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /www/wwwroot/h.sjds.net/app/middleware.php ( 0.25 KB )
  86. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /www/wwwroot/h.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /www/wwwroot/h.sjds.net/route/app.php ( 1.72 KB )
  100. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /www/wwwroot/h.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /www/wwwroot/h.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /www/wwwroot/h.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /www/wwwroot/h.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /www/wwwroot/h.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /www/wwwroot/h.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /www/wwwroot/h.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /www/wwwroot/h.sjds.net/runtime/temp/c1d6e8c94b2c2fa10e259903674c804d.php ( 8.11 KB )
  140. /www/wwwroot/h.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000493s ] mysql:host=172.18.0.4;port=3306;dbname=h_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000682s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000355s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000320s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000521s ]
  6. SELECT * FROM `set` [ RunTime:0.000267s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000734s ]
  8. SELECT * FROM `article` WHERE `id` = 558804 LIMIT 1 [ RunTime:0.000397s ]
  9. UPDATE `article` SET `lasttime` = 1790103681 WHERE `id` = 558804 [ RunTime:0.002810s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000366s ]
  11. SELECT * FROM `article` WHERE `id` < 558804 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000430s ]
  12. SELECT * FROM `article` WHERE `id` > 558804 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000368s ]
  13. SELECT * FROM `article` WHERE `id` < 558804 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000445s ]
  14. SELECT * FROM `article` WHERE `id` < 558804 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000563s ]
  15. SELECT * FROM `article` WHERE `id` < 558804 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000844s ]
0.081011s