跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
SQL

MySQL 实战:VARCHAR 类型安全转换为 INT

MySQL 在处理字符串数值排序或运算时,常需将 VARCHAR 转为 INT。系统内置 CAST 和 CONVERT 函数支持显式转换。CAST 遵循 ANSI 标准,CONVERT 为 MySQL 扩展。两者均支持 SIGNED 和 UNSIGNED 类型。需注意非数字字符转换结果为 0,且隐式转换可能影响索引效率。推荐在查询条件或排序中使用显式转换确保逻辑正确性。

BigDataPan发布于 2014/7/2更新于 2026/7/2443 浏览
MySQL 实战:VARCHAR 类型安全转换为 INT

场景与痛点

在实际开发中,我们常会遇到存储为字符串的数字需要按数值大小排序的情况。比如服务器 ID、版本号等字段,如果直接对 VARCHAR 类型进行 ORDER BY,数据库会按字典序比较,导致结果不符合预期(例如 10 排在 2 前面)。

这时候就需要显式地将字符串转换为整数类型。

两种主流方案

MySQL 原生提供了两个函数来实现类型转换:CAST() 和 CONVERT()。它们都能把表达式的值转换成指定的数据类型。

支持的类型包括 BINARY、CHAR、DATE、DATETIME、DECIMAL、SIGNED、TIME、UNSIGNED 等。针对整数转换,我们主要关注 SIGNED(有符号)和 UNSIGNED(无符号)。

代码示例

假设表结构中有 server_id 字段,我们需要获取 game_id = 1 的记录,并按 server_id 的数值降序取前 10 条。

使用 CAST 写法:

SELECT server_id FROM cardserver 
WHERE game_id = 1 
ORDER BY CAST(server_id AS SIGNED) DESC 
LIMIT 10;

或者使用 CONVERT:

SELECT server_id FROM cardserver 
WHERE game_id = 1 
ORDER BY CONVERT(server_id, SIGNED) DESC 
LIMIT 10;

注意事项

虽然这两个函数能解决问题,但要注意以下几点:

  • 非数字内容:如果字段中包含无法转换为数字的字符串(如 'abc'),转换结果通常为 0,这可能会干扰排序逻辑。
  • 性能影响:在 WHERE 子句中对列进行函数转换会导致索引失效,建议仅在 ORDER BY 或 SELECT 列表中使用。
  • 风格统一:CAST 更符合 ANSI SQL 标准,跨数据库迁移时兼容性更好;CONVERT 则是 MySQL 特有的扩展语法。
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 小爱音箱自定义固件开发指南:解锁开源智能家居功能
  • Gazebo 机器人三维物理仿真平台
  • VSCode 中使用 CMake 构建 C/C++ 多文件项目
  • Python 零基础学习指南
  • Seedance 2.0 使用指南:免费渠道对比与高效创作方案
  • MCP 协议详解:与 Function Call 的区别及使用方法
  • CentOS 7 + Docker 部署 KaiwuDB 社区版 3.1.0 全流程及跨模查询实测
  • 测试开发核心知识点梳理:网络、并发与框架原理
  • 飞算 JavaAI 代码审查落地:4 个关键细节与实践
  • IDEA 三大 AI 编程插件实测对比:Copilot、TRAE 与灵码
  • Trae IDE 实战:从零开发 AI Chatbot 应用
  • AI 原生重构低代码开发:从工具到智能体的范式变革
  • 几款支持万方平台的 AIGC 降重工具实测对比
  • 变分自编码器(VAE)原理及 PyTorch 代码实现
  • EhViewer:安卓端开源免费的 E-Hentai 漫画浏览工具安装与使用指南
  • Spring Cloud 负载均衡 LoadBalancer 原理与实战
  • Python FastAPI 入门指南:从零构建生产级 RESTful API
  • Flutter 三方库 eth_sig_util 的鸿蒙化适配指南
  • 飞算 JavaAI:Java 开发智能辅助工具深度体验
  • OpenClaw 开源桌面 AI Agent 框架功能与架构解析

相关免费在线工具

  • SQL 美化和格式化

    在线格式化和美化您的 SQL 查询(它支持各种 SQL 方言)。 在线工具,SQL 美化和格式化在线工具,online

  • SQL转CSV/JSON/XML

    解析 INSERT 等受限 SQL,导出为 CSV、JSON、XML、YAML、HTML 表格(见页内语法说明)。 在线工具,SQL转CSV/JSON/XML在线工具,online

  • CSV 工具包

    CSV 与 JSON/XML/HTML/TSV/SQL 等互转,单页多 Tab。 在线工具,CSV 工具包在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online