草庐IT

varchar_number

全部标签

mysql - 数据库 MySql 设计 - utf8 字段的 varchar 长度::1。密码 2. 用户名 3. 邮箱

大多数时候我定义varchar(255)lengthauto。但现在我在想为utf8字段定义多少varchar长度最好:密码用户名电子邮件如果这个字段应该定义小于varchar255,它会提高多少性能?谢谢 最佳答案 如果您使用SHA1哈希,“密码”应该是char(40)。如果您确定散列的情况始终相同,则这可能具有二进制排序规则。这会给你更好的表现。如果不是,请使用latin1,但不要使用utf8。'email'...使用255,你无法知道某人的电子邮件地址有多长。对于用户名,我会使用您的最大用户名长度。20或30可能会很好。如果您

不使用 CAST 的 VARCHAR 字段的 mysql SUM

在MySql数据库中使用SUM查询VARCHAR类型的字段时,SUM会自动转为数字吗?我尝试使用SELECTSUM(parametervalue)FROMtable它显示MySql返回了总和,尽管我预计会抛出一个错误,因为“parametervalue”字段是VARCHAR类型 最佳答案 MySQL对数字上下文中的字符串进行静默转换。因为sum()需要一个数字,所以MySQL只是使用字符串中的前导“数字”进行转换。请注意,这包括小数点、减号,甚至包括表示科学记数法的e。因此,'1e6'被解释为数字。在代码中,我个人会通过添加0来明确

mysql - MySQL 中的数据透视表 - 转换为具有 varchar 格式值的数据透视表

我想转换Table1中的数据,如您在Pivot_table数据的第一张图片中所见。可以在MySQL中做到这一点吗?因为数据透视表(A、B、C、D)的值是varchar数据格式,我不能使用MySQL的任何聚合函数,如SUM或其他函数。Table1:PKNameSubjectGrade-------------------------------------1BobMathA2BobHistoryB3BobLanguageC4BobBiologyD5SueHistoryC6SueMathA7SueMusicA8SueGeographyCPivot_table:SubjectBobSue--

MySQL InnoDB VARCHAR 性能与插入时的 TEXT

使用MySQL5InnoDB是否应该在您期望有很多插入的表中使用varchar而不是文本?我打算存储最大长度为2000个字符的文本。 最佳答案 VARCHAR和TEXT在MySQL的InnoDB存储引擎中存储相同。没有性能差异。参见BlobStorageinInnodb很多详细的解释。这两种数据类型之间的唯一区别是VARCHAR可以有一个DEFAULT,而TEXT不能。 关于MySQLInnoDBVARCHAR性能与插入时的TEXT,我们在StackOverflow上找到一个类似的问题:

mysql - 在 Mysql 中将 Varchar 迁移为文本

我正在将mysql表中的“Varchar”列之一转换为文本字段。我只是使用单个alter命令来转换类型。当我读到有关text和varchar的内容时,我才知道它在存储机制上有所不同。我是否应该编写任何迁移脚本来更改列的类型并移动数据,或者单个类型更改命令就足够了? 最佳答案 ALTERTABLEtable_nameMODIFYcolumn_nameTEXTNOTNULL; 关于mysql-在Mysql中将Varchar迁移为文本,我们在StackOverflow上找到一个类似的问题:

sql - 文本还是 varchar?

我有2列包含文本,一列最多150个字符,另一列最多700个字符,我的问题是,我应该对两种varchar类型都使用还是应该对700个字符长的列使用文本?为什么?谢谢, 最佳答案 MySQLvarchar数据类型不能保存超过255个字符的数据。而在MySQL>=5.0.3中,它最多有65,535个字符。因此,这取决于您的目标平台以及您的可部署性要求。如果您想确保它能在低于5.0.3的MySQL版本上运行,请为较长的列使用text类型的数据字段http://dev.mysql.com/doc/refman/5.0/en/char.html

c# - Entity Framework 代码优先 MaxLength 和 FixedLegth(char 与 varchar)

我有一个从现有数据库创建的EntityFrameworkCodeFirst模型,我想使用DataAnnotations以不同的方式装饰一些char和varchar。char和varchar的区别在于Char是固定长度的,varchar是可变长度的。对于Varchar,我使用[Maxlength(length)]对于char,这是正确的方法还是有更好的方法来定义将类中的字符串属性映射为数据库中的char? 最佳答案 通过流畅的api,您可以使用IsFixedLength()://SetStudentNamecolumnsizeto50

mysql - 1-50 不带小数点的正则表达式

我正在寻找一个正则表达式来匹配从1到50的任何数字(含1到50)。到目前为止,我已经找到了示例,但它们都允许字符串包含小数点,而我不想包含小数点。所以1,13,24,50可以,但1.等不行。有我可以使用的REGEXP吗?提前致谢,蒂姆 最佳答案 试试这个:/^(?:[1-9]|[1-4][0-9]|50)$/更新:现在我看到问题已经更新为引用MySQL,这改变了很多事情。上面提到的正则表达式使用了MySQL不支持的非捕获括号。但这也引出了一个问题;你真的应该使用正则表达式来解决这个问题吗?我们真的必须看看您如何存储必须介于1和50之

sql - VARCHARS : 2, 4、8、16 等?还是 1、3、7、15 等?

我看到一直使用VARCHAR(255)而不是VARCHAR(256),但我也看到使用VARCHAR(16)而不是VARCHAR(15)。这对我来说似乎不一致。如果一个额外的字节被用来存储VARCHAR的长度,这条规则难道不应该也适用于更小的长度,比如2、4、8变成1、3、7吗?还是我完全错过了什么?换句话说,如果我有一个我知道永远不会超过12的数字,我应该继续使用VARCHAR(15)还是VARCHAR(16)来代替?因为它使用与VARCHAR(12)相同的空间量?如果是这样,我应该使用哪一个?15还是16?当我接近256时,这条规则会完全改变吗?我同时使用MySQL和SQL,具体取决

mysql - 为什么使用 INT 选择包含数字的 Varchar 索引比使用字符串慢得多?

我有一个包含几千行的表,有一个包含数字的Varchar列。尽管当时讨论了为什么此列不是数字类型,但从该表中选择行显示了一种奇怪的行为。虽然该列上有一个索引,但使用数字字符串查找行比使用整数(0.54秒)快得多(0.01秒)。这是什么原因?它似乎无法转换和使用索引的值...我是不是忽略了什么?看起来它不是在转换Int以将其用于索引?我是否必须提供有关索引使用的提示,或者是否有数据库切换来完成此操作?或者,如果我误解了Explain输出,为什么它会慢很多?显示示例的表格布局:CREATETABLE`example`(`id`int(11)NOTNULLAUTO_INCREMENT,`stu