Are there any limits on length of string in mysql?

String, in general, should be used for short text. For example, it is a VARCHAR(255) under MySQL.

Text uses the larger text from the database, like, in MySQL, the type TEXT.

For information on how this works and the internals in MySQL and limits and such, see the other answer by Pekka.

If you are requesting, say, a paragraph, I would use text. If you are requesting a username or email, use string.


CHAR

A fixed-length string that is always right-padded with spaces to the specified length when stored The range of Length is 1 to 255 characters. Trailing spaces are removed when the value is retrieved. CHAR values are sorted and compared in case-insensitive fashion according to the default character set unless the BINARY keyword is given.

VARCHAR

A variable-length string. Note: Trailing spaces are removed when the value is stored (this differs from the ANSI SQL specification)
The range of Length is 1 to 255 characters. VARCHAR values are sorted and compared in case-insensitive fashion unless the BINARY keyword is given

TINYBLOB, TINYTEXT

A TINYBLOB or TINYTEXT column with a maximum length of 255 (28 - 1) characters

BLOB, TEXT

A BLOB or TEXT column with a maximum length of 65,535 (216 - 1) characters , bytes = 64 KiB

MEDIUMBLOB, MEDIUMTEXT

A MEDIUMBLOB or MEDIUMTEXT column with a maximum length of 16,777,215 (224 - 1)characters , bytes = 16 MiB

LONGBLOB, LONGTEXT

A LONGBLOB or LONGTEXT column with a maximum length of 4,294,967,295 (232 - 1) characters , bytes = 4 GiB

See MySQL Data Types Quick Reference Table for more info.

also you can see MYSQL - String Type Overview