V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
rizon
V2EX  ›  程序员

mysql text 字段写入数据时怎么截取字符串长度防止过长

  •  
  •   rizon ·
    othorizon · 2019-09-26 12:36:18 +08:00 · 1993 次点击
    这是一个创建于 1917 天前的主题,其中的信息可能已经有所发展或是发生改变。

    mysql 字段类型设置为 text,也就是最大 6W+的字节长度限制。
    与 varchar 直接指定字符数量而不用关心字节大小不同,这样的话当我写入一个长度未知的字符串时,为了防止报错,我要截取字符串,可是怎么截取呢? 难道我要计算字符串的字节大小,然后找到一个合适的位置去截取字符串吗?这有些过于麻烦了啊。 或者我就按照最大长度 4 个字节去计算 ,也就是允许 6w/4 个字符的数量。

    2 条回复    2019-09-26 12:59:14 +08:00
    lihongjie0209
        1
    lihongjie0209  
       2019-09-26 12:54:09 +08:00
    长度未知也是有一个范围的 比如说 0 - 6w, 只要在这个范围内, 那么你就不需要担心。

    如果不在这个范围内, 那么我建议你换一种数据类型或者数据库。
    cnanyi
        2
    cnanyi  
       2019-09-26 12:59:14 +08:00
    google 上搜 mysql text
    The following sizes assume the database is using the UTF-8 encoding.
    TINYTEXT: 255 characters - 255 B. ...
    TEXT: 65,535 characters - 64 KB. ...
    MEDIUMTEXT: 16,777,215 - 16 MB. ...
    LONGTEXT: 4,294,967,295 characters - 4 GB. ...
    TEXT vs. ...
    Usage Notes.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   988 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 21:42 · PVG 05:42 · LAX 13:42 · JFK 16:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.