如何在mysql中输入200的前100个字符

Kho*_*nde 3 java mysql hibernate

我在mysql中有一个带varchar(100)的字段,我想存储前100个字符,因为我的数据长度是200个字符(忽略最后100个字符).我不想更改我的源代码.这在MS-Access和MS Server中是可能的,但我想在mysql中执行此操作.

我在java中使用hibernate应用它,意味着我不是为此编写插入代码.这里我只使用save()方法并抛出"大数据".

我有例外 -

引起:java.sql.BatchUpdateException:数据截断:第1行的列'FBUrl'的数据太长 at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1527) at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1065) at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58) at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195) glb.chatmeter.exception.AdException: Could not Save Facebook page Data.

T.J*_*der 6

注意:在下面一小时后,编辑的问题发生了重大变化.这个答案回答了原来的问题,但没有解决编辑后的版本问题.


你可以使用substring:

INSERT INTO MyTable (Myfield) values (SUBSTRING('long string', 1, 100))
Run Code Online (Sandbox Code Playgroud)

pos参数开始于1(奇怪),如果它的好len参数比你实际上插入长度.