草庐IT

mysql order varchar 字段为整数

我的表中有一个varchar字段,我想对其进行排序。但我需要将此字段作为整数处理。意思是如果按文本排序,顺序是“19,2,20”,但我想得到正确的顺序“2,19,20”。谁能帮帮我? 最佳答案 不知何故,我无法使用CAST运行查询。我总是得到ErrorCode:1064near"DECIMAL"(或我选择的其他数字类型)。所以,我找到了另一种将varchar排序为数字的方法:SELECT*FROMmytableORDERBYABS(mycol)有点简单,适用于我的情况。 关于mysqlo

python - 无效请求错误 : VARCHAR requires a length on dialect mysql

我正在尝试在运行12.04的Ubuntu机器上使用mysql创建一个远程数据库。它有一个启用远程登录且没有密码的root用户。我已经启动了服务器。输出sudonetstat-tap|grepmysql显示tcp00localhost:mysql*:*LISTEN13246/mysqld我使用创建了一个名为nwtopology的数据库(如上所述,root还没有密码。)createdatabasenwtopologygrantallprivilegeson*.*toroot@192.168.129.221FLUSHPRIVILEGES;在同样运行Ubuntu12.04的客户端机器上,我使用

java - JPA - 如何在 DDL 中将字符串列设置为 varchar(max)

与JPA,属性的DDL生成:@ColumnfinalStringsomeString;将是someStringvarchar(255)null@Column(length=1337)finalStringsomeString;将产生someStringvarchar(1337)null。但是我怎样才能让它产生someStringvarchar(max)null?是否可以使用length-属性,还是我需要使用columnDefinition-属性? 最佳答案 几个月过去了,获得了新知识,所以我将回答我自己的问题:@Lob@Column

mysql - Varchar 上的索引是否会产生性能差异?

varchar列上的索引是否会使查询运行速度变慢?我可以把它变成int。而且我不需要进行LIKE%比较。 最佳答案 Doesindexonavarcharcolumnmakethequeryrunslower?不,它没有。如果优化器决定使用索引,查询将运行得更快。该表上的INSERTs/UPDATEs/DELETE会较慢,但不太可能引起注意。Idon'tneedtodotheLIKE%comparison注意使用:LIKE'%whatever%'...将不使用索引,但以下将:LIKE'whatever%'键是字符串左侧的通配符意味着

mysql - 何时在 mysql 中使用 TEXT 而不是 VARCHAR

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:MySQL:LargeVARCHARvs.TEXT?既然VARCHAR现在可以有65k字节,那么什么时候应该使用TEXT代替VARCHAR? 最佳答案 长VARCHAR的存储方式与InnoDB中的TEXT/BLOB字段相同。FromstorageprospectiveBLOB,TEXTaswellaslongVARCHARarehandledsamewaybyInnodb.ThisiswhyInnodbmanualcallsit“longcolumns”r

mysql - 将 mysql 字段类型从 INT 更改为 VARCHAR 将如何影响以前存储为 INT 的数据

我需要将生产数据库中的一个字段从INT更新为VARCHAR。当前INT字段中的信息是敏感信息,我想确保在更改表类型时不会无意更改或破坏它。例如,用户可能将INT123456存储在此列中,我想确保在转换为VARCHAR后准确存储。完成此操作的推荐流程是什么?使用这样的东西时有什么需要担心的吗?ALTERTABLEtable_sampleCHANGEcol_samplecol_sampleVARCHAR;提前感谢您的帮助。 最佳答案 在更改列类型之前让您的MySQL服务器进入严格模式,并确保您的varchar(n)列有足够大的n来容纳所

mysql - 如何在 mySQL 中更改 varchar 类型的列大小?

这个问题在这里已经有了答案:HowcanImodifythesizeofcolumninaMySQLtable?(3个回答)关闭6年前。我有下表emp:FieldTypeNullKeyDefaultExtraidint(11)NOPRINULLauto_incrementnamevarchar(20)YESNULLdeptvarchar(20)YESNULL现在我想将name的varchar大小从20更改为50。我已尝试使用以下SQL查询,但显示相同的错误:ALTERTABLEempCHANGECOLUMN'name'varchar(100);ALTERTABLEempALTERCOL

MySQL VARCHAR 大小?

如果我有一个200个字符的VARCHAR并且我放置了一个100个字符的字符串,它会使用200个字节还是只使用字符串的实际大小? 最佳答案 100个字符。这是varchar中的var(变量):您只存储您输入的内容(以及额外的2个字节来存储最长65535的长度)如果是char(200)那么你总是存储200个字符,用100个空格填充查看文档:"TheCHARandVARCHARTypes" 关于MySQLVARCHAR大小?,我们在StackOverflow上找到一个类似的问题:

mysql - 哪种 DATATYPE 更适合使用 TEXT 或 VARCHAR?

这个问题基于performance和size两件事哪种DATATYPE更适合使用TEXT或VARCHAR?基于性能哪些会影响哪些会提高? 最佳答案 这取决于您使用它的目的。我不想给出如此笼统的答案,但这是真的。通常,尝试尽可能具体地获取数据类型。如果您的字符串永远不会超过某个字符的上限,那么请使用VARCHAR,因为它会更有效率。如果您需要更多空间,请使用TEXT。如果您不确定您的文本将占用多少空间,您可能应该使用TEXT;性能差异不是很大,最好是面向future,而不是在您的需求发生变化时冒着改变它的风险。只是我的两分钱。在评论中

mysql - 对所有基于文本的字段使用通用 varchar(255) 是否有缺点?

我有一个contacts表,其中包含postcode、firstname、lastname、town、country、phonenumber等,所有这些都定义为VARCHAR(255),即使这些都没有字段将接近255个字符。(如果您想知道,之所以这样,是因为RubyonRails迁移默认将字符串字段映射到VARCHAR(255)并且我从不费心去覆盖它)。由于VARCHAR将仅存储字段的实际字符数(以及字段长度),因此使用VARCHAR(16)是否有任何明显的优势(性能或其他方面)在VARCHAR(255)上?此外,这些字段中的大多数都有索引。字段上较大的VARCHAR大小是否会影响索引