MySQL LIKE模糊查询:从基础语法到性能优化全解析
1. 从“大海捞针”到“精准定位”为什么我们需要LIKE模糊查询在数据库的世界里数据就像一座巨大的图书馆。很多时候我们并不是拿着精确的索书号去找书而是凭着一些模糊的记忆“书名里好像有‘编程’两个字”、“作者姓‘张’”、“是关于‘2023年’的”。这时候精确匹配的操作符就束手无策了。LIKE操作符就是MySQL为我们提供的这把“模糊搜索”的钥匙它允许我们使用通配符来匹配符合特定模式的数据是数据检索中最常用、最基础但也最容易用错的功能之一。无论是用户在前端搜索框输入的关键词还是后台需要筛选特定格式的记录比如所有以.com结尾的邮箱LIKE都扮演着核心角色。它看似简单一个WHERE column LIKE ‘%pattern%’就搞定了但背后却涉及到查询性能、索引失效、字符集匹配等一系列深水区问题。很多开发者初期觉得它“好用”直到某天一张百万级数据表的模糊查询把数据库CPU打满才开始重新审视这个老朋友。今天我们就来彻底拆解MySQL中的LIKE模糊查询不仅要知道怎么用更要明白为什么这么用以及如何用得高效、安全。2. LIKE操作符的核心语法与两种通配符详解LIKE操作符的语法结构非常直观它用在WHERE子句中基本形式如下SELECT column1, column2, ... FROM table_name WHERE columnN LIKE pattern;这里的pattern模式是核心它决定了匹配的规则。LIKE支持两种主要的通配符%和_。理解它们的行为差异是正确使用模糊查询的第一步。2.1 百分号%代表零个、一个或多个字符%是“万用牌”它可以匹配任意长度的任意字符序列包括零个字符。你可以把它想象成搜索引擎中的“*”号。使用场景与示例以特定字符串开头查找所有姓“张”的用户。SELECT * FROM users WHERE name LIKE 张%;这会匹配“张三”、“张伟”、“张三丰”等。‘张%’表示第一个字必须是“张”后面可以是任何字符或没有字符。以特定字符串结尾查找所有使用公司邮箱的员工。SELECT * FROM employees WHERE email LIKE %company.com;这会匹配zhangsancompany.com、lisicompany.com。‘%company.com’表示前面可以是任意字符但必须以company.com结尾。包含特定字符串在产品描述中查找含有“防水”关键词的商品。SELECT * FROM products WHERE description LIKE %防水%;这是最常用也最需要警惕的用法。‘%防水%’表示在字符串的任意位置出现“防水”二字都会被匹配如“超强防水手机壳”、“不防水涂层说明”。组合使用查找文件名以“report_”开头以“.pdf”结尾的文件记录。SELECT * FROM documents WHERE file_name LIKE report_%.pdf;这会匹配report_2023_q1.pdf、report_final.pdf但不会匹配report.pdf因为_必须匹配一个字符见下文。2.2 下划线_代表恰好一个任意字符_是“填空牌”它严格匹配单个任意字符。一个_就代表一个字符位置。使用场景与示例固定格式的匹配查找所有手机号前三位为“138”的用户假设手机号字段为11位纯数字。SELECT * FROM customers WHERE phone LIKE 138________;这里用了8个下划线表示在“138”之后必须恰好有8个数字字符。这会精确匹配13800138000但不会匹配1380013800少一位或13800138000a最后一位不是数字。与%组合限定中间部分长度查找所有第二和第三个字符为“ab”的字符串。SELECT * FROM some_table WHERE code LIKE _ab%;这会匹配xabc、1ab123、cab但不会匹配ab123缺少第一个字符或aab第二个字符是‘a’不是‘b’。注意通配符就是普通的字符如果你想搜索的内容本身就包含%或_需要使用ESCAPE关键字来定义转义字符。例如查找包含“10%”折扣的字段SELECT * FROM promotions WHERE discount_text LIKE %10!%% ESCAPE !;这里指定!为转义符!%表示匹配字面量的百分号。3. 性能深渊LIKE查询的索引失效与优化策略这是LIKE模糊查询最关键的实战部分也是初级开发者最容易踩坑的地方。很多人写了WHERE name LIKE ‘%张%’后发现查询慢如蜗牛却不知其所以然。3.1 为什么LIKE ‘%xxx%’会导致索引失效数据库索引如B-Tree索引的工作原理类似于字典的拼音目录。它按照字段值的顺序存储可以快速定位到以某个值“开头”的数据。LIKE ‘张%’左匹配固定这相当于问“字典里所有拼音以‘zhang’开头的字在哪里”。数据库可以利用索引的有序性快速定位到第一个“张”开头的记录然后向后顺序扫描直到条件不满足为止。这种情况下索引通常是有效的前缀索引。LIKE ‘%张%’或LIKE ‘%张’左模糊这相当于问“字典里所有包含‘zhang’这个拼音片段的字在哪里”。索引目录对此无能为力因为它无法告诉你中间或结尾有什么。数据库只能退回到最原始的方式——全表扫描逐行检查每一行数据是否满足条件。当表数据量巨大时性能灾难就发生了。3.2 针对模糊查询的优化方案面对必须使用模糊查询的场景我们不能因噎废食而是需要一些策略来优化。方案一尽可能使用右模糊LIKE ‘张%’这是最有效的优化。在设计搜索功能时可以引导用户进行“前缀搜索”。例如在搜索联系人时输入“张”可以列出所有姓张的人这比直接搜“三”要高效得多。很多成熟的搜索框都会默认或推荐这种模式。方案二使用覆盖索引减少IO即使索引不能用于快速定位WHERE条件它仍然可以用于“覆盖查询”。如果查询的列都包含在某个索引中数据库可以直接从索引中读取数据避免回表查询数据行从而提升速度。-- 假设在 (name, id) 上建立了联合索引 SELECT id, name FROM users WHERE name LIKE %张%;在这个查询中id和name都在索引里引擎可能会选择扫描整个索引而不是整个表虽然还是扫描但索引文件通常比数据文件小IO代价更低。方案三使用全文索引FULLTEXT Index对于大文本字段如文章内容、产品描述的模糊搜索LIKE ‘%关键词%’是绝对的下策。MySQL提供了专门的全文索引来应对这种场景。创建全文索引仅适用于MyISAM和InnoDB存储引擎且MySQL 5.6的InnoDB才支持ALTER TABLE articles ADD FULLTEXT INDEX ft_idx_content (content);使用MATCH() ... AGAINST()进行搜索SELECT * FROM articles WHERE MATCH(content) AGAINST(防水 IN NATURAL LANGUAGE MODE);全文索引不仅速度快还支持自然语言模式、布尔模式等高级搜索能根据相关性排序是文本搜索的首选。方案四引入专业的搜索引擎对于海量数据、高并发、复杂条件的搜索需求如电商网站的商品搜索最终的解决方案是将数据同步到专业的搜索引擎中如Elasticsearch或Solr。这些搜索引擎专为全文检索设计支持分词、高亮、聚合、排序等复杂功能性能远超数据库自带的模糊查询。方案五函数索引与反向存储这是一种比较“黑科技”的思路。如果查询模式固定为LIKE ‘%xxx’右模糊可以考虑将字段值反转后存储并建立索引查询时也反转查询条件。-- 新增一个反向字段 ALTER TABLE users ADD COLUMN name_reverse VARCHAR(100) AS (REVERSE(name)) STORED; CREATE INDEX idx_name_reverse ON users(name_reverse); -- 查询以‘三’结尾的名字 SELECT * FROM users WHERE name_reverse LIKE REVERSE(三) %; -- 等价于 WHERE name LIKE %三这样就把右模糊转换成了左模糊可以利用索引。但这种方法增加了存储和维护成本需谨慎评估。4. 实战中的边界问题与避坑指南掌握了基本用法和性能优化在实际编码中还会遇到一些意想不到的“坑”。4.1 字符集与排序规则Collation的影响LIKE匹配的结果严重依赖于字段的字符集和排序规则。排序规则决定了字符比较的规则比如是否区分大小写、是否区分重音。区分大小写如果字段的排序规则是utf8mb4_bin二进制比较或xxx_csCase-Sensitive那么LIKE ‘a%’和LIKE ‘A%’会返回不同的结果。不区分大小写如果排序规则是utf8mb4_general_ci或utf8mb4_unicode_ciCase-Insensitive那么LIKE ‘a%’会匹配到以 ‘A’ 或 ‘a’ 开头的记录。特殊字符某些排序规则会将特定字符序列视为等价。例如在utf8mb4_unicode_ci下德语中的 ‘ß’ 可能与 ‘ss’ 等价。我的经验是在创建表时务必根据业务需求明确指定字符集和排序规则。对于大多数中文互联网应用使用utf8mb4字符集和utf8mb4_unicode_ci排序规则是通用且稳妥的选择它支持完整的Unicode包括Emoji且不区分大小写。如果业务上必须区分再考虑_bin或_cs规则。4.2 NULL值的处理LIKE对NULL值的处理是一个静默的陷阱。任何值与NULL进行LIKE比较结果都是NULL在WHERE条件中相当于FALSE。SELECT * FROM users WHERE name LIKE %张%;如果某条记录的name字段是NULL它将不会出现在结果集中。这符合SQL的三值逻辑但有时会被忽略导致数据统计不准确。如果你也需要找出NULL值必须显式添加OR column IS NULL条件。4.3 在编程语言中的参数化查询与注入风险这是安全层面的重中之重。绝对不要直接拼接用户输入到SQL语句中-- 危险SQL注入漏洞 String sql “SELECT * FROM products WHERE name LIKE ‘%” userInput “%’”;如果用户输入是‘ OR ‘1’‘1那么整个条件就会变成LIKE ‘%’ OR ‘1’‘1%’导致查询出所有数据甚至可能引发更严重的后果。正确的做法是使用参数化查询预编译语句在Java (JDBC)中String sql “SELECT * FROM products WHERE name LIKE ?”; PreparedStatement stmt connection.prepareStatement(sql); stmt.setString(1, “%” userInput “%”); // 通配符作为参数的一部分传入在Python (PyMySQL/pymysql)中sql “SELECT * FROM products WHERE name LIKE %s” cursor.execute(sql, (“%” user_input “%”,)) # 注意参数是元组在MyBatis#{}中select id“search” resultType“Product” SELECT * FROM products WHERE name LIKE CONCAT(‘%’, #{keyword}, ‘%’) /select注意这里使用的是#{}而非${}。#{}是预编译的安全的${}是字符串替换存在注入风险。网上热词中提到的#{}模糊查询指的就是这种安全的做法。参数化查询会将用户输入始终视为数据而非SQL代码的一部分从根本上杜绝了SQL注入。4.4 与正则表达式REGEXP/RLIKE的对比LIKE简单但功能有限。当模式更复杂时可以考虑使用REGEXP或同义词RLIKE。-- 查找名字以‘张’、‘李’或‘王’开头的人 SELECT * FROM users WHERE name REGEXP ‘^(张|李|王)’; -- 使用LIKE需要写多个OR -- 查找邮箱格式不正确的记录简单示例 SELECT * FROM users WHERE email NOT REGEXP ‘^[A-Za-z0-9._%-][A-Za-z0-9.-]\.[A-Za-z]{2,}$’;但是请注意REGEXP的功能强大得多但语法也更复杂性能通常比简单的LIKE更差尤其是在数据量大时。REGEXP同样无法使用标准B-Tree索引进行优化。在MySQL 8.0中可以针对REGEXP使用函数索引但LIKE在某些情况下左匹配固定可以利用索引。除非模式复杂到必须用正则否则优先使用LIKE。对于简单的“包含”、“开头”、“结尾”查询LIKE是更清晰、更可能被优化的选择。5. 进阶应用在存储过程、触发器和复杂查询中的实践LIKE不仅用于简单的SELECT它在数据库编程中也无处不在。5.1 在存储过程中进行动态模糊查询存储过程中可能需要根据传入参数进行灵活的模糊查询。这里的关键是安全地构建SQL字符串。DELIMITER // CREATE PROCEDURE SearchProducts(IN keyword VARCHAR(255)) BEGIN -- 使用CONCAT安全地构建模式注意参数过滤 SET pattern CONCAT(‘%’, REPLACE(keyword, ‘%’, ‘\%’), ‘%’); -- 使用用户定义变量和预处理语句防止注入 SET sql CONCAT(‘SELECT * FROM products WHERE name LIKE ? OR description LIKE ?’); PREPARE stmt FROM sql; SET kw pattern; EXECUTE stmt USING kw, kw; DEALLOCATE PREPARE stmt; END // DELIMITER ;这里使用了REPLACE对输入中的通配符进行了转义并使用预处理语句PREPARE和EXECUTE来执行确保了安全性。5.2 在触发器中基于模式匹配进行逻辑判断触发器可以在数据变更前后执行逻辑。LIKE可以用于条件判断。DELIMITER // CREATE TRIGGER before_insert_user BEFORE INSERT ON users FOR EACH ROW BEGIN -- 检查新插入的邮箱是否为管理员邮箱 IF NEW.email LIKE ‘%admin.company.com’ THEN SET NEW.role ‘admin’; -- 可以记录日志或进行其他操作 INSERT INTO admin_audit_log (user_id, action) VALUES (NEW.id, ‘Auto-assigned admin role’); END IF; END // DELIMITER ;5.3 在复杂查询中与其他子句联用LIKE可以和其他SQL子句无缝结合构建强大的查询。与CASE WHEN结合在查询结果中根据模式匹配添加标记列。SELECT name, email, CASE WHEN email LIKE ‘%gmail.com’ THEN ‘Gmail’ WHEN email LIKE ‘%outlook.com’ THEN ‘Outlook’ ELSE ‘Other’ END AS email_provider FROM users;与聚合函数和GROUP BY结合统计不同类别的数量。SELECT CASE WHEN url LIKE ‘%/products/%’ THEN ‘产品页’ WHEN url LIKE ‘%/blog/%’ THEN ‘博客页’ ELSE ‘其他页面’ END AS page_type, COUNT(*) AS visit_count FROM site_logs GROUP BY page_type;在UPDATE或DELETE语句中使用批量更新或删除符合特定模式的数据。-- 将所有临时邮箱用户的状态置为无效 UPDATE users SET status ‘inactive’ WHERE email LIKE ‘%temp%%’ OR email LIKE ‘%test%%’;重要提示执行此类操作前务必先使用SELECT语句验证匹配的结果确认无误后再执行UPDATE或DELETE避免误操作。6. 性能监控与诊断当LIKE查询变慢时该怎么办即使我们遵循了优化策略在生产环境中随着数据增长模糊查询仍可能变慢。这时需要一套诊断方法。6.1 使用EXPLAIN分析查询执行计划这是MySQL性能调优的必备工具。在查询语句前加上EXPLAIN或EXPLAIN FORMATJSON。EXPLAIN SELECT * FROM orders WHERE order_no LIKE ‘202310%’;关注结果中的几个关键字段type这是最重要的指标之一。如果看到ALL就表示全表扫描对于大表来说性能极差。我们期望看到的是range范围扫描对于LIKE ‘xxx%’有可能或index全索引扫描比全表扫描好。key显示MySQL实际决定使用的索引。如果为NULL说明没有使用索引。rowsMySQL预估需要扫描的行数。这个数字越接近实际结果集越好。Extra包含额外信息。如果出现Using where表示服务器在存储引擎检索行后再进行过滤。如果出现Using index condition是个好现象表示使用了索引条件下推。对于LIKE ‘%xxx%’查询EXPLAIN结果中的type很可能是ALLkey为NULL这就是性能问题的直接证据。6.2 慢查询日志定位罪魁祸首如果应用整体变慢需要开启MySQL的慢查询日志它可以帮助你捕获所有执行时间超过指定阈值如2秒的SQL语句。在MySQL配置文件如my.cnf中设置slow_query_log 1 slow_query_log_file /var/log/mysql/mysql-slow.log long_query_time 2重启MySQL服务或动态设置。分析慢日志文件使用mysqldumpslow工具或pt-query-digestPercona Toolkit进行汇总分析找出最耗时的模糊查询。6.3 针对性优化措施根据诊断结果可以采取以下措施重写查询再次审视业务是否真的需要LIKE ‘%xxx%’能否改为前缀匹配LIKE ‘xxx%’增加或调整索引对于必须的左匹配固定模式确保字段上有索引。对于LIKE ‘%xxx’考虑前面提到的“反向索引”方案。应用层缓存对于不常变化的热点模糊查询结果如热门搜索词可以在应用层如Redis进行缓存定时更新。读写分离与分库分表对于超大规模数据终极方案是进行架构升级将查询压力分散到只读从库或者对数据进行水平拆分。引入异步搜索对于实时性要求不高的搜索可以将其放入消息队列由后台任务处理结果生成后通知前端。模糊查询是数据库操作中的一把双刃剑它提供了极大的灵活性但也对性能构成了持续挑战。我的体会是在设计之初就要对数据的增长和查询模式有预判为高频的模糊查询字段建立合适的索引并明确其使用边界。在代码层面坚持使用参数化查询是底线。当性能问题出现时从EXPLAIN开始一步步分析从查询语句、索引、到数据库架构层层递进地寻找解决方案。记住没有银弹只有最适合当前业务场景的权衡之策。

相关新闻

6款免费数字孪生工具深度横评:从Three.js到Unity,新手到专家的选型指南

6款免费数字孪生工具深度横评:从Three.js到Unity,新手到专家的选型指南

1. 项目概述:为什么你需要关注免费数字孪生工具?数字孪生这个概念,这几年火得不行,但很多朋友一听到就觉得门槛太高,不是要买昂贵的工业软件,就是得组建庞大的开发团队。其实,这个想法已经过时了…

2026/8/17 6:44:22 阅读更多 →
智能工具链如何重塑数学建模竞赛:从解题到问题架构的范式革命

智能工具链如何重塑数学建模竞赛:从解题到问题架构的范式革命

1. 项目概述:一场由外而内的竞赛范式革命最近几年,我作为数学建模竞赛的指导老师和参赛者,亲身感受到了技术浪潮对这片传统学术竞技场带来的剧烈冲击。过去,我们谈论建模竞赛,核心是“人”的比拼:参赛队伍的…

2026/8/17 6:44:22 阅读更多 →
灰色关联分析:从原理到实战,掌握数据趋势关联的建模利器

灰色关联分析:从原理到实战,掌握数据趋势关联的建模利器

1. 项目概述:从“拍脑袋”到“算关联”,一个被低估的建模利器如果你参与过数学建模竞赛,或者做过任何形式的综合评价研究,大概率遇到过这样的困境:手里有一堆指标数据,想分析哪个因素对最终结果影响最大&am…

2026/8/17 6:43:22 阅读更多 →

最新新闻

时序数据预测与风险评估:从数学建模到工程实践的边坡预警系统构建

时序数据预测与风险评估:从数学建模到工程实践的边坡预警系统构建

1. 项目概述:从一道赛题到一套完整的工程解决方案看到“2026年五一数学建模竞赛C题边坡预警问题”这个标题,很多参加过数模竞赛的同学可能会心一笑,这显然是一个面向未来的预测性题目。但对我们这些常年和数据、模型打交道的从业者来说&#…

2026/8/17 7:29:32 阅读更多 →
Cookie安全全解析:从HttpOnly到SameSite的实战配置指南

Cookie安全全解析:从HttpOnly到SameSite的实战配置指南

1. 从一次“意外”登录说起:Cookie为何如此关键那天下午,我正在排查一个诡异的用户反馈。有用户声称,他在公司电脑上登录了自己的个人博客后台,下班回家后,用家里的电脑打开博客,竟然直接就是登录状态&…

2026/8/17 7:29:32 阅读更多 →
芯片混仿技术全解析:从核心原理到四大模式实战应用

芯片混仿技术全解析:从核心原理到四大模式实战应用

1. 混仿到底是什么?从概念到价值的全面拆解在芯片设计和验证领域,尤其是涉及数模混合信号(AMS)芯片时,你肯定不止一次听过“混仿”这个词。它听起来像是一个高深莫测的黑盒,很多工程师可能只是把它当作一个…

2026/8/17 7:29:32 阅读更多 →
Windows下绿色版MySQL部署全攻略:从解压到多实例管理

Windows下绿色版MySQL部署全攻略:从解压到多实例管理

1. 为什么选择绿色版MySQL:从“安装即用”到“灵活部署”的深度考量在Windows环境下部署数据库,尤其是MySQL,绝大多数人的第一反应是去官网下载那个几十兆的MSI安装包,一路“下一步”到底。这确实是最简单的方式,但也是…

2026/8/17 7:29:32 阅读更多 →
Jetson设备性能监控:jtop界面参数深度解析与系统瓶颈诊断指南

Jetson设备性能监控:jtop界面参数深度解析与系统瓶颈诊断指南

1. 项目概述:为什么我们需要读懂jtop?如果你是NVIDIA Jetson系列开发板的用户,无论是做边缘计算、机器人开发还是AI模型部署,那么“jtop”这个工具你一定不陌生。它就像是Jetson设备的“任务管理器”和“系统仪表盘”的合体&#…

2026/8/17 7:29:32 阅读更多 →
芯片设计混仿技术:原理、方法与实践指南

芯片设计混仿技术:原理、方法与实践指南

1. 混仿:芯片设计中的“双核”验证模式在芯片设计这个行当里,验证工作的重要性怎么强调都不为过。一个设计的功能再精妙,性能再强悍,如果在验证环节漏掉了关键缺陷,流片后可能就是一场灾难。随着芯片规模越来越大&…

2026/8/17 7:28:32 阅读更多 →

日新闻

LabVIEW异步调用实战:从原理到生产者消费者模式,解决界面卡顿与并行处理难题

LabVIEW异步调用实战:从原理到生产者消费者模式,解决界面卡顿与并行处理难题

1. 项目概述:为什么异步调用是LabVIEW进阶的必修课? 如果你用LabVIEW做过稍微复杂点的项目,尤其是涉及界面响应、多任务并行或者硬件IO等待的场景,大概率遇到过这样的窘境:前面板点个按钮,整个程序就“卡死…

2026/8/17 0:00:08 阅读更多 →
LabVIEW异步调用实战:解决界面卡顿与并行处理难题

LabVIEW异步调用实战:解决界面卡顿与并行处理难题

1. 项目概述:为什么异步调用是LabVIEW进阶的必经之路如果你在LabVIEW里写过稍微复杂点的程序,尤其是涉及到界面响应、多任务并行或者硬件IO等待,大概率会遇到一个头疼的问题:程序“卡”住了。前面板点不动,进度条不更新…

2026/8/17 0:00:08 阅读更多 →
飞书局域网文件传输实战:3种方案实现高速点对点传输

飞书局域网文件传输实战:3种方案实现高速点对点传输

1. 项目概述:为什么要在局域网内用飞书传文件? 飞书作为一款主流的协同办公套件,其核心功能是围绕云端协作设计的。无论是文档、表格还是文件,通常的分享逻辑都是“上传到云端 -> 生成链接 -> 分享给同事”。这个流程在互联…

2026/8/17 0:00:08 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/17 2:58:27 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/17 2:58:30 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/17 2:58:32 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/16 6:00:23 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/16 6:00:24 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/16 6:00:27 阅读更多 →