Mysql 如何修剪sql中的数据
我已经创建了一个表Mysql 如何修剪sql中的数据,mysql,Mysql,我已经创建了一个表 CREATE TABLE Persons ( PersonID int, LastName varchar(5), FirstName varchar(5), Address varchar(5), City varchar(5) ); 在该表中,我插入了一个数据 INSERT INTO Persons (PersonID,LastName,FirstName, Address,City ) VALUES ('1','TomBEri
CREATE TABLE Persons (
PersonID int,
LastName varchar(5),
FirstName varchar(5),
Address varchar(5),
City varchar(5)
);
在该表中,我插入了一个数据
INSERT INTO Persons (PersonID,LastName,FirstName, Address,City )
VALUES ('1','TomBErichsen','Skagen212','Stavanger3','c4006333');
数据正在插入
1 TomBErichsen Skagen212 Stavanger3 c4006
但我的问题是我创建了一个存储元素5。如果我输入超过5个
瓦尔查尔
所有字符都已存储。我必须避免这样。数据应该这样存储
1 TomBe Skage Stavan c4006
超过5封信。如果输入的字母超过5个,则应删除数据。我如何才能做到这一点?您可以使用子字符串函数
INSERT INTO Persons (PersonID,LastName,FirstName, Address,City )
VALUES ('1',SUBSTRING('TomBErichsen',1,5),SUBSTRING('Skagen212',1,5),SUBSTRING('Stavanger3',1,5),SUBSTRING('c4006333',1,5));
首先,您应该知道char和var char数据类型的区别。因此,差异如下 煤焦 固定长度。 最大字符长度为255。 它比Varchar快50%。 Char使用静态内存存储数据。 瓦尔查尔 用于存储可变长度的字母数字数据。 此数据类型最多可容纳MySQL 5.0.3之前版本的255个字符。 在MySQL 5.0.3+中:为行共享65535个字符。 它比CHAR使用动态内存分配慢。 在您的问题中,您可以使用如下所示的子字符串 子寄存器,位置,len STR—从中返回子字符串的字符串。POS An 表示字符串str.LEN中字符串位置的整数 整数,指示要返回的字符数。 SUBSTR函数与SUBSTRING函数相同 结果是:
mysql> SELECT SUBSTR('Buddhika',4,3);
+--------------------------+
| SUBSTR('Buddhika',4,3) |
+--------------------------+
| dhi |
+--------------------------+
1 row in set (0.01 sec)
谢谢。如果超过5,肯定会导致插入失败,MYSQL返回一个错误?您想使用纯sql还是使用某种程序语言,比如java?一种解决方法是提供来自HTML表单的数据,您可以使用它来避免人们输入长得离谱的输入。您确定要插入此记录吗?您在撒谎@Fire-我得到了这个错误-数据对于第1行的“LastName”列太长
mysql> SELECT SUBSTR('Buddhika',4,3);
+--------------------------+
| SUBSTR('Buddhika',4,3) |
+--------------------------+
| dhi |
+--------------------------+
1 row in set (0.01 sec)