SQL高效学习法:两天攻克牛客网50题,掌握核心语法与实战技巧
1. 项目缘起与价值为什么是“两天50题”最近在技术社区和求职群里看到不少朋友在讨论SQL面试尤其是牛客网上的那套经典SQL必知必会练习题。这套题被很多人奉为“面试前必刷”的宝典但动辄几十上百道的题量又让不少初学者望而却步感觉无从下手或者刷了前面忘了后面。我自己带团队面试时也发现很多候选人的SQL基础其实并不扎实一些复杂的多表关联、窗口函数应用起来磕磕绊绊。于是我就想能不能找到一个高效的方法帮助大家也包括我自己团队的新人在短时间内系统性地攻克这套题真正把知识点吃透而不是走马观花。“两天完成50题”这个目标听起来有点激进但绝不是天方夜谭。它的核心不是追求速度而是建立一种高强度、高专注度的沉浸式学习节奏。就像健身中的“HIIT”高强度间歇训练在短时间内集中火力反复锤炼核心肌群SQL核心语法与思维。用两天时间每天投入4-6个小时完全沉浸其中通过密集的解题、复盘、归纳强行打通知识阻塞点形成肌肉记忆。这比拖拖拉拉刷一个月效果要好得多。接下来我就把自己总结的这套“两天冲刺法”的完整思路、实操步骤以及避坑指南分享给你。无论你是正在准备面试的求职者还是想巩固数据库技能的开发者相信这套方法都能让你事半功倍。提示本文提供的所有解题思路和答案均基于牛客网SQL必知必会练习题集的常见题型和表结构进行演绎和讲解旨在传授方法论。实际练习时请以牛客网平台的最新题目和在线判题系统为准。2. 整体作战计划如何科学拆解两天任务盲目地从头做到尾很容易在中间遇到难题卡壳导致信心受挫计划流产。我们必须像项目管理一样对这两天的任务进行科学拆解和编排。2.1 核心原则分类突破由易到难首先不要按题目编号顺序做。我将50题大致分为四大战役模块分两天攻克第一天夯实基础与核心查询约25题上午模块一单表操作约10题聚焦SELECT,WHERE,DISTINCT,ORDER BY,LIMIT以及聚合函数COUNT,SUM,AVG,MAX,MIN与GROUP BY、HAVING的组合使用。这是地基必须又快又准。下午模块二多表关联约15题主攻各种JOININNER JOIN,LEFT JOIN 偶尔的RIGHT JOIN和FULL JOIN以及子查询IN,EXISTS, 标量子查询。这是SQL的灵魂需要反复理解关联条件与结果集的关系。第二天攻克高阶与复杂分析约25题上午模块三高级函数与格式化约10题集中学习CASE WHEN条件判断、DATE_FORMAT/YEAR等日期函数、CONCAT等字符串函数以及ROUND等数值处理函数。这些是让查询变得“聪明”的工具。下午模块四窗口函数与复杂逻辑约15题全力冲击最难的部分窗口函数ROW_NUMBER(),RANK(),DENSE_RANK(),SUM() OVER()等、复杂嵌套子查询、递归WITH语句CTE。这是区分普通使用者和熟练工的关键。2.2 资源与工具准备牛客网题库链接确保你打开的是正确的【SQL必知必会】或【SQL进阶】专题页面。建议使用电脑浏览器屏幕大方便写代码和看题目描述。本地数据库环境可选但强烈推荐牛客网是在线判题但为了加深理解我建议在本地如MySQL、PostgreSQL或使用Docker快速起一个数据库把题目中的表结构建出来并插入一些样例数据。这样你可以自由地SELECT *查看中间结果对理解复杂查询的执行逻辑有奇效。笔记工具准备一个笔记本或Notion、语雀等在线文档用于记录错题、经典解法和个人总结的“套路”。好记性不如烂笔头这份笔记将是面试前最好的复习材料。2.3 心态与时间管理设定番茄钟以45分钟为一个专注学习单元期间只做题、思考。然后休息5-10分钟回顾一下刚才的解题思路。这能有效保持注意力。拥抱“卡住”遇到20分钟还想不出来的题太正常了。不要死磕立刻去看社区讨论或参考答案。但关键不是抄答案而是理解答案的解题思路它为什么用这个JOIN这个子查询解决了什么问题窗口函数在这里起到了什么作用把思路理解了这道题才算过关。以教促学每攻克一个模块尝试用自己的话把核心知识点和常见题型“讲”出来可以假想自己在教一个新手。这能极大巩固你的理解。3. 核心战役详析与经典题型破解下面我挑选每个模块中最具代表性、最容易出错的题型进行深度拆解。我会先给出题目场景描述模拟牛客网风格然后展示解题代码最后重点讲解思路和易错点。3.1 模块一单表操作——聚合与分组是重中之重经典题型统计各部门的薪资水平假设有员工表employee字段有id,name,dept_id,salary。题目要求列出每个部门的编号、员工人数、平均工资保留两位小数且只显示平均工资高于10000的部门结果按平均工资降序排列。SELECT dept_id, COUNT(*) AS emp_count, ROUND(AVG(salary), 2) AS avg_salary FROM employee GROUP BY dept_id HAVING avg_salary 10000 ORDER BY avg_salary DESC;思路拆解与避坑指南SELECT与GROUP BY的对应关系SELECT后面跟的要么是GROUP BY的列dept_id要么是聚合函数COUNT(*),AVG(salary)。这是铁律违反就会报错。WHEREvsHAVING这是新手最容易混淆的点。WHERE在分组前过滤行它不能使用聚合函数。HAVING在分组后过滤组它专门用来过滤聚合结果。这里过滤“平均工资10000”是针对分组后的结果所以必须用HAVING。别名在HAVING和ORDER BY中的使用注意我们在SELECT中为ROUND(AVG(salary), 2)定义了别名avg_salary。在后面的HAVING和ORDER BY子句中我们可以直接使用这个别名这让语句更清晰。数据库执行时会先计算SELECT但逻辑上HAVING和ORDER BY可以引用其别名。精度处理对平均工资这类金额数据用ROUND函数保留指定位数小数是良好的习惯也常是题目要求。3.2 模块二多表关联——理解集合与连接的本质经典题型查找没有订单的客户假设有客户表customerscust_id,cust_name和订单表ordersorder_id,cust_id,order_date。这是一个经典的“找不存在”的问题。解法一使用LEFT JOINWHERE IS NULLSELECT c.cust_id, c.cust_name FROM customers c LEFT JOIN orders o ON c.cust_id o.cust_id WHERE o.cust_id IS NULL;思路以客户表为左表连接订单表。如果某个客户没有订单那么连接后来自订单表o的所有字段都会是NULL。通过WHERE o.cust_id IS NULL即可筛选出这些客户。这是最直观、最常用的方法。解法二使用NOT EXISTS子查询SELECT cust_id, cust_name FROM customers c WHERE NOT EXISTS ( SELECT 1 FROM orders o WHERE o.cust_id c.cust_id );思路对于主查询中的每一行客户子查询去检查订单表中是否存在与其cust_id匹配的记录。NOT EXISTS意味着子查询结果为空集即该客户没有订单。这种方法逻辑清晰尤其在子查询复杂时很有用。对比与选择LEFT JOIN ... IS NULL通常在大数据量且关联字段有索引时性能可能更好因为数据库优化器对JOIN的优化非常成熟。NOT EXISTS更符合人类的思维逻辑“不存在这样的订单”可读性更强。在orders表非常大但满足条件的客户很少时NOT EXISTS可能因为能提前终止子查询扫描而更高效。实战建议两种都要掌握。简单情况用LEFT JOIN直观当过滤条件复杂或需要关联多个表进行“不存在”判断时NOT EXISTS更灵活。3.3 模块三高级函数——让查询“活”起来经典题型员工薪资等级分类还是员工表employee要求给员工薪资分档‘高’20000‘中’10000且20000‘低’10000并统计各档次人数。SELECT salary_level, COUNT(*) AS level_count FROM ( SELECT name, salary, CASE WHEN salary 20000 THEN 高 WHEN salary 10000 THEN 中 ELSE 低 END AS salary_level FROM employee ) AS t GROUP BY salary_level ORDER BY FIELD(salary_level, 高, 中, 低); -- 按自定义顺序排序核心讲解CASE WHEN的妙用CASE WHEN是SQL中的“条件判断器”它实现了类似编程语言中if-else if-else的逻辑。注意WHEN条件的顺序很重要SQL会从上到下判断一旦满足某个WHEN就返回对应的THEN值并结束该行的判断。别名与子查询我们通过CASE WHEN在子查询中为每个员工生成了一个新的salary_level字段。外层查询再对这个新字段进行GROUP BY和统计。这是一种非常常见的“先加工后聚合”的模式。自定义排序ORDER BY默认按字母或数字升序。这里我们想按“高、中、低”的逻辑顺序排可以使用FIELD()函数指定一个自定义的顺序列表。这是一个非常实用的小技巧。3.4 模块四窗口函数——数据分析的利器经典题型部门内薪资排名经典问题了对员工表employee查询每个部门内薪资从高到低的排名要求排名连续即使用DENSE_RANK。SELECT dept_id, name, salary, DENSE_RANK() OVER (PARTITION BY dept_id ORDER BY salary DESC) AS dept_salary_rank FROM employee ORDER BY dept_id, dept_salary_rank;窗口函数深度解析OVER()子句是核心它定义了一个“窗口”或“数据范围”。PARTITION BY dept_id意味着在每个部门内部单独开一个窗口进行计算。ORDER BY salary DESC指定了在这个窗口内按薪资降序排列这是排名的依据。DENSE_RANK()vsRANK()vsROW_NUMBER()ROW_NUMBER()纯粹的行号部门内薪资第一就是1第二就是2即使薪资相同也会给出1,2,3...顺序可能不稳定。RANK()排名薪资相同则并列但会跳过后续名次。例如部门内薪资前两名相同他们并列第1下一个就是第3名。DENSE_RANK()密集排名薪资相同则并列但不跳过名次。同上例前两名并列第1下一个就是第2名。这是题目要求的“排名连续”。执行顺序窗口函数是在WHERE,GROUP BY,HAVING之后ORDER BY之前执行的。这意味着你可以对聚合后的结果再进行窗口计算功能非常强大。其他常用窗口函数SUM(salary) OVER (PARTITION BY dept_id)计算部门薪资累计但这里是逐行累计需结合ORDER BY实现不同效果。LAG(salary, 1) OVER (PARTITION BY dept_id ORDER BY hire_date)获取同一部门内按入职日期排序后上一行的薪资值。用于计算环比等场景。4. 实战冲刺全流程与时间分配实录假设你有一个完整的周末周六、周日。以下是我为你规划的详细到小时的时间表与任务清单你可以严格遵循也可以根据自身基础微调。第一天周六建立自信打通任督二脉上午 9:00-12:00模块一单表操作9:00-9:30热身。快速浏览牛客网SQL必知必会的前10题题目不写代码只判断它们属于单表查询的哪种类型简单查询、条件过滤、聚合分组、排序分页。9:30-11:00集中刷题。按顺序完成10-15道单表操作题。遇到不会的思考10分钟后立刻看思路理解后自己再写一遍。关键动作每做完一题在笔记里用一句话总结考点如“WHERE过滤行HAVING过滤组GROUP BY后SELECT非聚合列必在GROUP BY中”。11:00-12:00复盘与总结。把上午所有题目快速过一遍特别是错题。尝试不看答案重写。总结出单表查询的“标准模板”。下午 14:00-18:00模块二多表关联14:00-15:30理解JOIN。先不刷题在本地数据库建两个有关系的表手动写各种JOININNER,LEFT,RIGHT,FULL观察结果集的变化务必理解ON条件的作用。这是最重要的基础。15:30-17:30集中刷题。完成15-20道多表关联和子查询题目。重点练习LEFT JOIN找不存在项以及IN、EXISTS子查询的互换。17:30-18:00对比总结。将同一道题用JOIN和子查询两种方式各实现一遍比较其优劣和适用场景。整理到笔记中。晚上 20:00-21:00第一天总复习。快速回顾全天笔记闭上眼睛回忆JOIN的维恩图、WHERE和HAVING的区别。准备第二天的硬仗。第二天周日攻坚克难实现质变上午 9:00-12:00模块三高级函数9:00-10:00函数学习。重点学习CASE WHEN、日期函数DATE_ADD,DATEDIFF,DATE_FORMAT、字符串函数CONCAT,SUBSTRING,LIKE。在本地数据库写几个例子熟悉语法。10:00-11:30集中刷题。完成10-15道涉及高级函数的题目。特别注意CASE WHEN在SELECT中和在ORDER BY中的不同用法。11:30-12:00归纳“套路”。例如看到“分类”、“分档”、“打标签”立刻想到CASE WHEN看到“年月日格式化”想到DATE_FORMAT。下午 14:00-18:00模块四窗口函数与复杂逻辑14:00-15:00理解窗口函数。这是最难的部分。反复观看OVER(),PARTITION BY,ORDER BY的讲解视频或文档。务必理解“窗口”的概念。在本地数据库用ROW_NUMBER,RANK,DENSE_RANK,SUM() OVER()做几个简单练习。15:00-17:00硬啃题目。这是最耗时的阶段。可能一道题就要想半小时。保持耐心一道一道攻克。重点理解为什么这里要用窗口函数不用行不行PARTITION BY和GROUP BY有什么区别17:00-18:00综合演练与查漏补缺。找几道综合了多表关联、子查询、窗口函数的大题进行练习。检查前三个模块是否还有模糊的知识点立即回看笔记或重做错题。晚上 20:00-21:00最终复盘与模拟。不再写新题。把两天的笔记从头到尾看一遍。在牛客网上找一套模拟SQL题或随机抽做过的题限时完成检验学习成果。5. 高频易错点与独家排查技巧在带新人和自己刷题的过程中我积累了一些“血泪教训”和排查技巧这些在官方文档里可找不到。5.1 语法正确但结果不对警惕这些“幽灵”错误GROUP BY与SELECT列不匹配这是最常被忽略的运行时错误。错误示例SELECT dept_id, name, AVG(salary) FROM employee GROUP BY dept_id;这里name不在GROUP BY中也不是聚合函数在某些严格模式下会报错在非严格模式下会返回无意义的值。NULL值导致的聚合失真COUNT(column)会忽略该列的NULL值而COUNT(*)不会。AVG(column)也会忽略NULL。在计算平均值时如果需要将NULL视为0要用AVG(IFNULL(column, 0))或COALESCE。JOIN条件遗漏或错误导致笛卡尔积如果多表JOIN时忘记写关联条件或者关联条件写错如a.id b.name会产生巨大的笛卡尔积导致查询极慢甚至崩溃。每次写JOIN都要在脑子里过一遍关联键。子查询返回多行在应该使用IN的地方误用了例如WHERE dept_id (SELECT dept_id FROM ...)如果子查询返回多行就会报错。要时刻判断子查询可能返回的结果数量。5.2 性能优化初探让你的SQL跑得更快虽然牛客网的题目数据量小但养成好习惯很重要。EXISTSvsIN当子查询表大而主查询表小时EXISTS通常优于IN因为它只要找到一个匹配项就会停止。反之当子查询结果集很小时IN可能更直观。在不确定时可以用EXPLAIN命令查看执行计划如果本地环境支持。避免在WHERE子句中对字段进行函数操作例如WHERE YEAR(create_date) 2023这会导致数据库无法使用create_date字段上的索引。应写成WHERE create_date 2023-01-01 AND create_date 2024-01-01。合理使用索引在本地练习时可以尝试为经常用于WHERE条件过滤、JOIN关联、ORDER BY排序的字段创建索引感受一下查询速度的变化。这是面试中常被问到的点。5.3 调试技巧像Debug程序一样调试SQL化繁为简逐步验证面对一个复杂的多层嵌套查询不要试图一次性写对。先从最内层的子查询开始写执行确认它返回的结果是你期望的。然后把它当作一个“虚拟表”一层一层往外包裹每加一层都执行验证。多用SELECT *和LIMIT在本地环境怀疑哪个中间结果不对就把它SELECT *出来看看。对于大表用LIMIT 10、LIMIT 100控制输出快速验证逻辑。给表和列起有意义的别名尤其是在多表关联和嵌套查询时a,b,c这种别名很快会让你自己都晕掉。用表名的缩写或含义清晰的别名如emp,dept,ord能极大提升代码可读性和调试效率。两天的高强度训练结束后你收获的绝不仅仅是50道题的答案更是一套解决SQL问题的思维模式和一整套可复用的“解题套路”。下次再看到陌生的SQL问题你就能像搭积木一样快速识别出它是由哪些基础模块构成的应该用什么方法组合解决。这才是“两天50题”的真正价值所在。

相关新闻

二项分布在进料检验中的高效应用

二项分布在进料检验中的高效应用

1. 项目概述:当概率论遇上进料检验在制造业的质量控制环节,进料检验(IQC)是确保原材料合格的第一道防线。但很少有人意识到,这个看似简单的"合格/不合格"判定过程,实际上完美诠释了概率论中的二项分布原理。我在电子元器…

2026/10/1 3:28:17 阅读更多 →
玻璃钢化炉变频器选型:四方DX500应用解析

玻璃钢化炉变频器选型:四方DX500应用解析

【一句话总结】玻璃钢化炉淬火风机具有大功率、频繁启停、负载波动大等特点,对变频器要求较高,四方电气DX500系列变频器针对工业驱动场景优化,在玻璃加工行业有较多应用。 【核心定义】玻璃钢化炉变频器是专门用于钢化炉设备驱动控制的变频装…

2026/9/26 22:30:37 阅读更多 →
技术任务拆解与高效完成方法论

技术任务拆解与高效完成方法论

1. 项目背景与目标解析"3.1完成进阶13、14、15"这个标题看似简单,实则包含了几个关键信息点需要拆解。从版本号"3.1"和任务编号"进阶13、14、15"的命名规则来看,这很可能是一个技术学习或项目开发中的阶段性任务目标。这类…

2026/9/27 11:52:48 阅读更多 →

最新新闻

制造业四大系统数据采集架构设计:从需求到落地的完整指南

制造业四大系统数据采集架构设计:从需求到落地的完整指南

很多企业上MES、QMS、EMS、EAM系统时,第一反应是先选软件、找供应商、谈功能模块,结果系统上线后才突然发现一个致命问题:屏幕上没有数据。设备数据采集架构设计这件事,在制造业信息化项目里最容易被低估。它不像系统界面那样看得…

2026/10/1 3:27:31 阅读更多 →
Python+YOLOv5路面桥梁裂缝检测实战:环境配置到模型部署

Python+YOLOv5路面桥梁裂缝检测实战:环境配置到模型部署

简介:一份基于Python与Yolov5的路面桥梁裂缝检测识别毕业设计项目源码,面向计算机及相关专业学生,可完整用于毕业设计、课程设计或期末大作业。项目经导师指导并获评审99分,代码完整、运行无忧,即使基础薄弱也能按资料…

2026/10/1 3:27:31 阅读更多 →
OpenClaw+扣子+飞书:零代码打造专属AI助手

OpenClaw+扣子+飞书:零代码打造专属AI助手

1. 为什么把 OpenClaw、扣子和飞书拼在一起先说结论:这套组合解决的不是某个单一问题,而是“你有没有一个真正属于自己的AI助手”的问题。OpenClaw是一个开源的本地化AI助手框架,简单说就是把大模型的能力装进一个可以自我管理、自我调用的壳…

2026/10/1 3:27:31 阅读更多 →
OpenClaw+扣子+飞书:零代码搭建本地AI助理全流程指南

OpenClaw+扣子+飞书:零代码搭建本地AI助理全流程指南

趁着周末把 OpenClaw(前身 Clawdbot)部署到了本地,接着用扣子编程配通了飞书机器人,全程没有写一行代码。OpenClaw 负责在本地执行 Agent 任务,扣子负责无代码编排对话流程,飞书机器人负责当日常聊天入口。…

2026/10/1 3:27:31 阅读更多 →
算法复杂度详解:从大O表示法到工程应用

算法复杂度详解:从大O表示法到工程应用

前段时间我帮朋友调一个数据清洗脚本,功能很简单,就是把一份几百万行的文件按某个字段去重。他写的时候没多想,直接用列表嵌套循环去查重,结果脚本跑了快二十分钟还没跑完。我帮他改成用哈希表之后,同样的逻辑几秒钟就…

2026/10/1 3:27:31 阅读更多 →
用SDL2和C++复刻金庸群侠传:2D游戏引擎架构与实战解析

用SDL2和C++复刻金庸群侠传:2D游戏引擎架构与实战解析

简介:这是一份以SDL2为基础实现的2D游戏引擎框架,同时提供了复刻经典DOS游戏《金庸群侠传》的移植范例,适合具备一定C基础、希望了解游戏循环、场景管理、战斗与事件系统的学习者。压缩包共186个文件,体积约3.04MB,包含…

2026/10/1 3:26:31 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →