Android 文本数据类型是否会限制长度?

Android 文本数据类型是否会限制长度?,android,mysql,text,sqldatatypes,Android,Mysql,Text,Sqldatatypes,我在MySQL中使用TEXT数据类型。但是当我查看该列时,我只看到fndjdjjjjjjj sekifkj sjkedkjfj sjekcjjjjwj…。在jwj之后,它应该有另一个文本,但我明白了…为什么会发生这种情况?我以为文本可以有无限的大小 我正在使用android,并且正在连接MySQL PHP 使用长文本 以下是限制 Type | Maximum length -----------+------------------------------------- TI

我在
MySQL
中使用
TEXT
数据类型。但是当我查看该列时,我只看到
fndjdjjjjjjj sekifkj sjkedkjfj sjekcjjjjwj…
。在jwj之后,它应该有另一个文本,但我明白了…为什么会发生这种情况?我以为文本可以有无限的大小

我正在使用android,并且正在连接MySQL PHP

使用长文本

以下是限制

Type | Maximum length -----------+------------------------------------- TINYTEXT | 255 (2 8−1) bytes TEXT | 65,535 (216−1) bytes = 64 KiB MEDIUMTEXT | 16,777,215 (224−1) bytes = 16 MiB LONGTEXT | 4,294,967,295 (232−1) bytes = 4 GiB 类型|最大长度 -----------+------------------------------------- TINYTEXT | 255(28−1) 字节 正文| 65535(216)−1) 字节=64千字节 中文本| 16777215(224−1) 字节=16个MiB 长文本| 4294967295(232−1) 字节=4 GiB 使用长文本

以下是限制

Type | Maximum length -----------+------------------------------------- TINYTEXT | 255 (2 8−1) bytes TEXT | 65,535 (216−1) bytes = 64 KiB MEDIUMTEXT | 16,777,215 (224−1) bytes = 16 MiB LONGTEXT | 4,294,967,295 (232−1) bytes = 4 GiB 类型|最大长度 -----------+------------------------------------- TINYTEXT | 255(28−1) 字节 正文| 65535(216)−1) 字节=64千字节 中文本| 16777215(224−1) 字节=16个MiB 长文本| 4294967295(232−1) 字节=4 GiB
TINYTEXT
限制为255字节。请注意插入过程中的截断。请注意,
ALTER
之后的数据是完整的。请注意,我使用的是
MODIFY
,而不是
CONVERT TO

mysql> CREATE TABLE so35474581 ( t TINYTEXT CHARACTER SET latin1 );
Query OK, 0 rows affected (0.24 sec)

mysql> INSERT INTO so35474581 (t) SELECT repeat('x', 444);
Query OK, 1 row affected, 1 warning (0.04 sec)
Records: 1  Duplicates: 0  Warnings: 1

mysql> SHOW WARNINGS;
+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1265 | Data truncated for column 't' at row 1 |
+---------+------+----------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT LENGTH(t), CHAR_LENGTH(t) FROM so35474581;
+-----------+----------------+
| LENGTH(t) | CHAR_LENGTH(t) |
+-----------+----------------+
|       255 |            255 |
+-----------+----------------+
1 row in set (0.00 sec)

mysql> ALTER TABLE so35474581 MODIFY t LONGTEXT CHARACTER SET latin1;
Query OK, 1 row affected (0.31 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> SELECT LENGTH(t), CHAR_LENGTH(t) FROM so35474581;
+-----------+----------------+
| LENGTH(t) | CHAR_LENGTH(t) |
+-----------+----------------+
|       255 |            255 |
+-----------+----------------+
1 row in set (0.00 sec)
所提到的
转换为
与更改字符集有关


插入超过几MB的内容时,数据包大小或其他设置可能会出现问题。

TINYTEXT
限制为255字节。请注意插入过程中的截断。请注意,
ALTER
之后的数据是完整的。请注意,我使用的是
MODIFY
,而不是
CONVERT TO

mysql> CREATE TABLE so35474581 ( t TINYTEXT CHARACTER SET latin1 );
Query OK, 0 rows affected (0.24 sec)

mysql> INSERT INTO so35474581 (t) SELECT repeat('x', 444);
Query OK, 1 row affected, 1 warning (0.04 sec)
Records: 1  Duplicates: 0  Warnings: 1

mysql> SHOW WARNINGS;
+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1265 | Data truncated for column 't' at row 1 |
+---------+------+----------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT LENGTH(t), CHAR_LENGTH(t) FROM so35474581;
+-----------+----------------+
| LENGTH(t) | CHAR_LENGTH(t) |
+-----------+----------------+
|       255 |            255 |
+-----------+----------------+
1 row in set (0.00 sec)

mysql> ALTER TABLE so35474581 MODIFY t LONGTEXT CHARACTER SET latin1;
Query OK, 1 row affected (0.31 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> SELECT LENGTH(t), CHAR_LENGTH(t) FROM so35474581;
+-----------+----------------+
| LENGTH(t) | CHAR_LENGTH(t) |
+-----------+----------------+
|       255 |            255 |
+-----------+----------------+
1 row in set (0.00 sec)
所提到的
转换为
与更改字符集有关


当插入超过几MB的内容时,您可能会遇到数据包大小或其他设置方面的问题。

如果我在MySQL中已有数据。更改为LONGTEXT后,我在列中的数据会被删除吗?在MySQL中,如果现有字段是文本,那么您将拥有只允许其长度的数据。如果要更改,应更改可能影响数据的表结构。考虑备份并将其迁移到更新的结构我已更改为LongText,然后再次插入文本,文本仍然有限检查是否尝试插入unicode文本。您的表的字符集设置为latin1。将表格字符集更改为utf-8。ALTER TABLE tablename{….}转换为字符集utf8;更多信息,如果我已经在MySQL内的数据。更改为LONGTEXT后,我在列中的数据会被删除吗?在MySQL中,如果现有字段是文本,那么您将拥有只允许其长度的数据。如果要更改,应更改可能影响数据的表结构。考虑备份并将其迁移到更新的结构我已更改为LongText,然后再次插入文本,文本仍然有限检查是否尝试插入unicode文本。您的表的字符集设置为latin1。将表格字符集更改为utf-8。ALTER TABLE tablename{….}转换为字符集utf8;更多信息