我来自SQL Server背景。 MySQL中的以下等效数据类型是什么:
NVARCHAR
- 支持所有语言的国际多字节字符
NVARCHAR(max)
- 允许很长的文本文档
答案 0 :(得分:13)
相当于VARCHAR
或TEXT
MySql支持nchar和nvarchar,但方式不同。这是使用字符集和整理(这是一组用于比较使用字符集的字符串的规则 - 例如比较是否区分大小写)来实现的。
MySql将字符集定义为4级:
服务器
数据库
表
专栏
字符集将从最高级别继承。您需要做的是确保您想要生成类型为nvarchar的列将“字符集”设置为任何unicode字符集(utf8是我认为的最佳选择)显式或继承。
对于列级别,您可以按如下方式设置“字符集”:
create table nvarchar_test
(
_id varchar(10) character set utf8,
_name varchar(200) character set ascii
)
在上面的示例中,_id将能够获取10个unicode字符,_name将能够获取100个unicode字符(每个unicode字符将评估为两个ascii字符)
请仔细阅读MySql参考资料以获取进一步说明。
答案 1 :(得分:13)
继续http://msdn.microsoft.com/en-us/library/ms186939.aspx,我会说
VARCHAR(n) CHARSET ucs2
是最接近的等价物。但是我没有看到很多人使用它,更常见的是人们使用:
VARCHAR(n) CHARSET utf8
据我所知,字符集utf8和ucs2允许相同的字符,只有编码不同。所以任何一个都应该工作,我可能会选择后者,因为它经常被使用。
MySQL的unicode支持存在一些限制,可能适用于您的用例,也可能不适用。有关MySQL的unicode支持的更多信息,请参阅http://dev.mysql.com/doc/refman/5.0/en/charset-unicode.html。
答案 2 :(得分:6)
在MySQL 5中,支持NVARCHAR(National Varchar的简写),并使用utf8作为预定义的字符集。
http://dev.mysql.com/doc/refman/5.0/en/charset-national.html