SQL 分类归档 - 永夜 https://www.shuijingwanwq.com/category/programming-language/sql/ 没有不值得去解决的问题,也没有不值得去学习的技术! Sun, 02 Aug 2026 03:38:30 +0000 zh-Hans hourly 1 https://wordpress.org/?v=7.1.3 https://media.shuijingwanwq.com/2026/05/logo-150x150.png SQL 分类归档 - 永夜 https://www.shuijingwanwq.com/category/programming-language/sql/ 32 32 WordPress 代码块中 Emoji 显示异常?三步彻底解决 https://www.shuijingwanwq.com/2026/05/25/13575/ Mon, 25 May 2026 12:49:39 +0000 https://www.shuijingwanwq.com/?p=13575 针对 WordPress 代码块中 Emoji 显示异常的问题,本文分析了数据库字符集不支持及前端图片替换机制导致其转换为 HTML 实体或 img 标签的原因。通过检查并升级核心表字符集为 utf8mb4、在主题 functions.php 中移除相关过滤器、以及手动修正旧文章内容的三个步骤,可彻底解决该问题,确保 Emoji 在前端代码块中原样展示,且适用于代码高亮插件。

WordPress 代码块中 Emoji 显示异常?三步彻底解决最先出现在永夜。

]]>
当 where 中的字段包含 shipping_at_gmt 与 shipping_status|shipping_type|operated_source 时,则强制使用组合索引,否则不强制使用组合索引 https://www.shuijingwanwq.com/2026/05/14/10479/ Thu, 14 May 2026 03:09:40 +0000 https://www.shuijingwanwq.com/?p=10479 本文针对列表接口响应超时的优化过程,探讨了在 Spatie\QueryBuilder 中强制使用组合索引的适用场景。通过 SQL 执行耗时分析发现,当查询条件包含 shipping_at_gmt 与 shipping_status、shipping_type 或 operated_source 时,强制使用组合索引有效;但在包含 operator_user_id 且数据量极大时会导致负优化。基于此总结出针对性规则,最终实现后的打印调试结果符合预期。

当 where 中的字段包含 shipping_at_gmt 与 shipping_status|shipping_type|operated_source 时,则强制使用组合索引,否则不强制使用组合索引最先出现在永夜。

]]>
在 Spatie\QueryBuilder 中,查询 SQL 强制使用索引 https://www.shuijingwanwq.com/2026/04/25/9583/ https://www.shuijingwanwq.com/2026/04/25/9583/#comments Sat, 25 Apr 2026 03:56:41 +0000 https://www.shuijingwanwq.com/?p=9583 针对 Spatie\QueryBuilder 中查询 SQL 强制使用索引的需求,文章参考了列表接口响应超时的优化方法,介绍了具体的实现步骤。通过配置生成的 SQL 语句已符合预期,成功强制查询使用指定索引。

在 Spatie\QueryBuilder 中,查询 SQL 强制使用索引最先出现在永夜。

]]>
https://www.shuijingwanwq.com/2026/04/25/9583/feed/ 1
列表接口响应超时的优化(基于 SQL 灵活控制是否强制使用 MySQL 组合索引) https://www.shuijingwanwq.com/2024/11/20/8855/ https://www.shuijingwanwq.com/2024/11/20/8855/#comments Wed, 20 Nov 2024 06:51:16 +0000 https://www.shuijingwanwq.com/?p=8855 针对性能环境中列表接口响应超时的问题,通过分析 SQL 发现 count 查询耗时极高。尝试通过调整组合索引的字段顺序和数量来优化查询,最终确定包含 shipping_at_gmt 等四个字段的组合索引方案。为了确保 count 查询的稳定性,决定在特定条件下强制使用该组合索引,将耗时控制在 5 秒左右。随后发现实际数据查询强制使用索引反而耗时增加,因此计划后续在 Laravel 中实现仅对 count 查询强制索引,从而将接口响应时间优化至 10 秒以内。

列表接口响应超时的优化(基于 SQL 灵活控制是否强制使用 MySQL 组合索引)最先出现在永夜。

]]>
https://www.shuijingwanwq.com/2024/11/20/8855/feed/ 3
在 Spatie\QueryBuilder ,请求参数中包含 “,” 报错:SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens https://www.shuijingwanwq.com/2024/09/03/8800/ Tue, 03 Sep 2024 01:54:58 +0000 toSql()]]> getBindings()]]> https://www.shuijingwanwq.com/?p=8800 在使用 Spatie\QueryBuilder 时,请求参数中包含逗号会导致 SQL 报错,提示绑定参数数量不匹配。经检查,原因是默认将逗号分隔的字符串拆分为了多个参数。通过禁用逗号自动转换为数组的功能,确保生成的 SQL 占位符数量与绑定参数一致,最终解决了该报错问题并验证了查询结果的正确性。

在 Spatie\QueryBuilder ,请求参数中包含 “,” 报错:SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens最先出现在永夜。

]]>
在 MySQL 8 中,in 条件用于多个字段,查询结果为空的排查 https://www.shuijingwanwq.com/2024/06/01/8613/ Sat, 01 Jun 2024 08:23:02 +0000 https://www.shuijingwanwq.com/?p=8613 针对 MySQL 8 中 IN 条件用于多个字段时查询结果为空的问题,文章记录了在 Laravel 9 中使用原生查询遇到的语法错误与列数违规报错。尽管报错 SQL 手动执行成功,但程序运行异常,最终决定放弃该 SQL 写法,调整为另一种 SQL 格式,解决了报错并使查询结果符合预期。

在 MySQL 8 中,in 条件用于多个字段,查询结果为空的排查最先出现在永夜。

]]>
在 MySQL 8 中,in 条件用于多个字段 https://www.shuijingwanwq.com/2024/03/13/8470/ https://www.shuijingwanwq.com/2024/03/13/8470/#comments Wed, 13 Mar 2024 01:28:41 +0000 https://www.shuijingwanwq.com/?p=8470 在 MySQL 8 中,针对 B 表缺少 A 表主键 ID 但存在其他两个字段的情况,需要基于这两个字段查询 A 表记录。文章尝试在 SQL 语句中将 in 条件用于多个字段,测试显示查询执行成功且结果符合预期。

在 MySQL 8 中,in 条件用于多个字段最先出现在永夜。

]]>
https://www.shuijingwanwq.com/2024/03/13/8470/feed/ 2
在 MySQL 5.7 中,如何在 json 字段上查询同一层级结构中的多个相同字段的值? https://www.shuijingwanwq.com/2023/11/22/8220/ Wed, 22 Nov 2023 01:39:52 +0000 https://www.shuijingwanwq.com/?p=8220 本文针对 MySQL 5.7 数据库中查询 json 字段同一层级结构多个相同字段值的问题进行了说明。文章以提取 announcement-bar 下 blocks 中的 settings.text 为例,展示了使用通配符构建路径的 SQL 写法。该查询返回结果为数组,若数据不存在则返回 NULL。文中特别指出,路径中的 announcement-bar 必须加上双引号,否则会因 Invalid JSON path expression 报错。

在 MySQL 5.7 中,如何在 json 字段上查询同一层级结构中的多个相同字段的值?最先出现在永夜。

]]>
在操作 MySQL 5.7 中的 json 字段时,并发执行(查询、修改、重新赋值)时数据丢失的问题处理(使用修改 JSON 值的函数 JSON_ARRAY_APPEND) https://www.shuijingwanwq.com/2023/10/07/8085/ Sat, 07 Oct 2023 01:39:45 +0000 https://www.shuijingwanwq.com/?p=8085 针对 MySQL 5.7 JSON 字段在队列任务并发执行时导致数据丢失的问题,文章记录了尝试使用 JSON_ARRAY_APPEND 函数进行原子操作的过程。在处理删除数组元素时,因 JSON_SEARCH 不支持数字且并发下依然存在残留,曾尝试添加锁,但最终发现问题根源在于另一处代码不断添加数据并频繁入队列。通过调整为数据添加完毕后再统一批量入队列,最终确保数据清空逻辑符合预期,解决了并发冲突与数据不一致。

在操作 MySQL 5.7 中的 json 字段时,并发执行(查询、修改、重新赋值)时数据丢失的问题处理(使用修改 JSON 值的函数 JSON_ARRAY_APPEND)最先出现在永夜。

]]>
在 MySQL 5.7 中,如何在 json 字段上使用 JOIN 来实现关联查询? https://www.shuijingwanwq.com/2023/09/27/8078/ Wed, 27 Sep 2023 01:29:32 +0000 https://www.shuijingwanwq.com/?p=8078 针对 MySQL 5.7 中 theme_table1 表的 JSON 数组字段 theme_table2_ids 存储关联 ID 的场景,本文介绍了如何查询 theme_table2 表记录是否存在于此字段中。文章展示了利用 JSON_CONTAINS 函数编写 SQL 的具体实现过程,通过 JOIN 操作成功实现了基于 JSON 字段的关联查询需求。

在 MySQL 5.7 中,如何在 json 字段上使用 JOIN 来实现关联查询?最先出现在永夜。

]]>