gpt4 book ai didi

mysql - 使用 MySQL VARCHAR 时非英语字符更重要?

转载 作者:行者123 更新时间:2023-11-30 23:04:53 24 4
gpt4 key购买 nike

VARCHAR(15) 不是意味着字段中最多可以有 15 个字符吗?如果是这样,为什么我会收到“数据太长”错误?

我插入我的数据 123456789 没问题,

但是有了١٢٣٤٥٦٧٨٩我得到了

第 1 行“customer_phone”列的数据太长

它们的字符数相同!

我的表格定义(部分):

+--------------------+----------------+------+ -----+--------------------+------------+
|领域 |类型 |空 |键 |默认 |额外 |
+--------------------+-------------+-----+-----+ ------------------+----------------+
|编号 |整数(11) |否 |优先级 |空 |自动递增|
|客户编号 |整数(11) |否 |多个 |空 | |
|客户名称 |变量(75) |是 | |空 | |
|客户电话 |变种(15) |是 | |空 | |
|支付金额 |十进制(10,2) |否 | |空 | |
|付费货币 |变种(4) |否 |多个 |空 | |
| ex_rate |十进制(8,2) |否 | |空 | |
|日期_时间 |日期时间 |否 |多个 |当前_时间戳 | |
|是虚拟的 |微小整数(1) |否 | | 0 | |
+--------------------+-------------+-----+-----+ ------------------+----------------+

最佳答案

根据 phpwact.org

... UTF-8 is a multibyte 8-bit encoding in which each Unicode scalar value is mapped to a sequence of one to four bytes. ...

简而言之,当您使用 utf8 时,您的字符串可以包含 1 到 4 个字节的字符。我认为英文字符需要一个字节,而阿拉伯语/波斯语字符需要两个字节。

当您使用 varchar(N) 时,这意味着您可以插入 N 个字节。这意味着您可以插入 N/2 个阿拉伯字符。

结论:如果要插入包含 (N) 个阿拉伯语/波斯语字符的字符串,则必须选择 varchar(2*N)。

请让我知道这是否可行,以及会发生什么情况。

关于mysql - 使用 MySQL VARCHAR 时非英语字符更重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22308488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com