标签: MySQL
-
文章针对 Yii2 运行时出现的 Malformed UTF-8 characters 异常进行分析,定位原因在于响应数据包含 MySQL 的 Point 类型字段。虽尝试使用 ST_X 和 ST_Y 空间函数及 addSelect() 方法提取经纬度来规避直接序列化错误,但考虑到模型层自动处理的复杂性,最终放弃使用 Point 类型字段,将数据库结构调整为使用两个独立的 Decimal 字段分别存储经纬度。
-
针对在 Laravel 9 中验证符合 MySQL 字段类型 decimal(8,2) 的字段,本文展示了最终实现方案。通过测试 -4、0、5、999999.99、999999.990、999999.991、9999990.99、0.09、0.009、0.0000001 等多种输入值,验证结果显示失败与成功的结果均符合预期,确保了数值范围与精度的正确性。
-
针对PHP中插入MySQL的JSON字符串中文已被编码的问题,文章先尝试对字符串进行整体URL解码,经在线工具验证可行,代码实现后确认中文恢复正常。针对请求参数中仍有中文未正常显示的情况,查明是因使用json_encode编码导致,最终采用先解码再重新编码,并添加JSON_UNESCAPED_UNICODE参数,实现了以字面形式编码多字节Unicode字符,解决了显示问题。
-
在 Windows 10 中尝试将 MySQL 5.7 直接更新至 8.0 时,安装向导提示只能升级至 5.7.44 版本,无法跨版本更新。为确保升级成功,采取了先备份所有数据库,然后卸载系统中所有以 MySQL 开头的软件的方案。卸载完成后重新运行安装程序,此时不再提示升级,而是显示全新安装选项,选择 Full 类型进行安装,安装列表确认了将部署 MySQL 8.0。
-
本文针对 MySQL 5.7 数据库中查询 json 字段同一层级结构多个相同字段值的问题进行了说明。文章以提取 announcement-bar 下 blocks 中的 settings.text 为例,展示了使用通配符构建路径的 SQL 写法。该查询返回结果为数组,若数据不存在则返回 NULL。文中特别指出,路径中的 announcement-bar 必须加上双引号,否则会因 Invalid JSON path expression 报错。
-
针对 MySQL 5.7 JSON 字段在队列任务并发执行时导致数据丢失的问题,文章记录了尝试使用 JSON_ARRAY_APPEND 函数进行原子操作的过程。在处理删除数组元素时,因 JSON_SEARCH 不支持数字且并发下依然存在残留,曾尝试添加锁,但最终发现问题根源在于另一处代码不断添加数据并频繁入队列。通过调整为数据添加完毕后再统一批量入队列,最终确保数据清空逻辑符合预期,解决了并发冲突与数据不一致。
-
针对 MySQL 5.7 中 theme_table1 表的 JSON 数组字段 theme_table2_ids 存储关联 ID 的场景,本文介绍了如何查询 theme_table2 表记录是否存在于此字段中。文章展示了利用 JSON_CONTAINS 函数编写 SQL 的具体实现过程,通过 JOIN 操作成功实现了基于 JSON 字段的关联查询需求。
-
针对删除 MySQL 表时因外键约束导致的 1217 报错问题,文章介绍了通过查询 INFORMATION_SCHEMA.KEY_COLUMN_USAGE 表来定位引用关系的方法。根据查询结果筛选出对应的数据库及表名,优先删除引用表后再处理原表,即可解决无法删除的问题并成功完成操作。
-
在 Laravel 6 的队列任务中使用静态变量时,发现若下一任务未重新设置变量,会沿用上一任务的值。即便在任务中手动重置,结合指数回退重试机制仍会导致变量值被意外覆盖。最终解决方法是放弃使用静态变量,改为将相关值存储在 MySQL 队列表记录中,从而确保各队列任务的数据相互独立,不再产生干扰。
