【mysql中的varchar】教程文章相关的互联网学习教程文章

MySQL对VARCHAR进行分区(60)【代码】

我有一个非常大的5亿行表,其中包含以下列: > id-Bigint-自动递增主索引.>日期-日期时间-每个日期大约有150万行,删除1年以内的数据.> uid-VARCHAR(60)-用户ID> sessionNumber-INT>开始-INT-开始时间的纪元.> end-INT-结束时间的纪元.>与该查询无关的更多列. uid和sessionNumber的组合形成一个uinque索引.我也有日期索引. 由于规模庞大,我想对桌子进行分区. 我大部分的访问都是按日期进行的,因此按日期范围进行分区似乎很直观,但是由...

mysql-Varchar为UTF-8吗?

我发现了与此类似的帖子,但仍不确定. 当我制作留言簿等多语言时,我在mysql中将排序规则更改为uft8_unicode_ci,一切正常运行,我没有想到的是我使用的类型,我的留言簿为多语言,并且名称字段,用户不能输入超过50个字符,主题和留言簿消息不能超过50个字符. 现在在PHP中进行此检查很简单,即.在strlen等之前使用mb_检查字符串长度. 但是我担心数据可能在mysql中被截断.显然普通字符可以,但是当它是中文字符和其他非标准字符时,这显然对我...

PHP-MySQL在整数前不存储零(字段设置为text(或varchar))【代码】

我正在通过HTML将表单提交到POST PHP页面,然后将该信息存储到MySQL数据库中.输入字段之一是可以从零开始的数字字段.我已经将HTML数据类型设置为表单上的文本,并尝试将MySQL数据类型设置为text和varchar,并且在整数被删除之前都将零设置为零.我不太确定自己在做什么错. 这是我用于表创建的PHP代码:$sql = "CREATE TABLE IF NOT EXISTS $tablename_db ( ID int NOT NULL AUTO_INCREMENT, PRIMARY KEY(ID), num text(4), amnt DECIMA...

mysql-从varchar字段获取最大值【代码】

我有一个varchar字段作为我的员工ID,其格式如下: 格式:YYYY-DateHired-Number范例:2012-1203-0001 但是我很难插入新记录,因为要插入新的递增ID,我需要在该字段中获取最新值,然后再递增. 如何获得最近一年中具有最新/最高(MAX)编号的行? 提前致谢 :)解决方法:假设您的EmployeeID的格式为YYYY-MMdd-XXXX.尝试这个,SELECT MAX(EmployeeID) FROM tableName WHERE EmployeeID LIKE CONCAT(SUBSTRING(EmployeeID, 1, 4),'%')SQLFidd...

mysql-SQL中的VARCHAR(x)和VARCHAR(y)之间的区别

我了解到,VARCHAR占用唯一需要的内存,而CHAR则总是占用相同数量的内存,无论是否需要. 我的问题:假设我有一个VARCHAR(50)字段,我知道如果它需要存储30个字符,它将仅占用30个字节,并且不超过那个(假定1个char占用一个字节).那么,为什么还要提及50或30或任何上限,因为它只会占用所需的内存. 更新:为什么我必须提到上限,因为不会有无用的内存占用?解决方法:UPDATE: Why do I have to mention the upper limit since there will be n...

Mysql 2147483647上的Varchar问题【代码】

有2147483647 MYSQL问题. 在电话字段中插入11位数的电话号码时,我得到的该电话号码已保存在数据库中:2147483647 TEL设置为VARCHAR not INT强. 另外,在SERVER 1上托管的数据库上,我具有完全相同的数据库表,并且没有相同的问题吗?可能是什么? 这是SQL和PHPtel_no varchar(20) utf8_general_ci Yes NULL mob_no varchar(20) utf8_general_ci Yes NULL那就是MYSQL.是的,我正在数据库中插入一个11位数字作为字符串$telno =...

mysql-排序varchar列【代码】

我有一个章节列,它的值像Chapter 1 Chapter 2 Chapter 11 Chapter 12 Chapter 3 Chapter 4我订购时显示为Chapter 1 Chapter 11 Chapter 12 Chapter 2 Chapter 3 Chapter 4我需要这样Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 11 Chapter 12解决方法:这称为自然排序.你可以试试这个吗?但是没有完美的方法可以自然排序.SELECT col FROM tab ORDER BY LENGTH(col), col;即使前缀不一样,如果这样修改也可以进行排序(对吗?我认...

mysql-如何将包含带有linq lambdas的数值的varchar列排序到Entity【代码】

我正在使用linq lambdas在MVC中使用实体框架查询MySql(注意,MySql不是Sql).现在我有一个表产品,该表的其中一列是价格,数据类型为“ VARCHAR”(接受,我无法将类型更改为INT,因为它可以容纳“ N / A”等值). 我想使用linq Lambdas对价格列进行数字排序.我尝试了下面的方法.我正在使用模型值来过滤查询.var query = ent.Product.Where(b => b.cp == Model.CodePostal);if (Model.order_by_flg == 2) {query = query.OrderByDescending...

在MySQL / Sequel Pro中将VARCHAR列转换为INT【代码】

我正在尝试将数据库中的列从VARCHAR设置为INT(值已经存在于DB中) 执行此操作时,将发生以下情况(示例):| number (varchar) | number (int | | 20090911913 > 2147483647 | | 3009092113 > 2147483647 |每个数字都是唯一的(具有VARCHAR值),将列设置为INT时,所有值都将相同(2147483647).请注意,在使用VARCHAR时,所有值都不包含字母(我检查过) 现在,我不知道为什么会这样,数据来自CSV,并且在导入Sequel Pro时检查了记录的...

在MySQL中索引VARCHAR

与INT字段相比,VARCHAR字段上的索引性能是相同还是更差? 我有一个带有两个字段的表(均为VARCHAR).我想在第一列上创建索引.我有两件事.1.在第一个字段上直接创建索引.2.在第一个字段中为每个VARCHAR分配一个整数,并将其存储在表中.然后用整数替换第一列中的VARCHAR,并在第一列上创建另一个表和索引(在这种情况下,它将是整数列).我将在这里得到两个不同的表. 另外,如果我有4个或5个表具有相同的第一个字段,并且必须在每个表的第一个...

mysql-如何使用数字搜索varchar列?【代码】

我有一个varchar(30)列,看起来像这样:953-41 975-12 952-13 934-34列中的所有数字都具有以下结构:3个数字和一个破折号,后跟更多的数字. 我想查询一个与SELECT * FROM tablename WHERE value = 95341类似的查询并且仅在WHERE子句中使用数字获得“ 953-41”. 我无法更改数据库并删除破折号,我需要在混合了我想要的数字和中间的破折号的行上使用数字值进行搜索.解决方法:你可以试试: MYSQL:SELECT * FROM tablename WHERE value =...

mysql-主键-UUID主键为VARBINARY或BLOB或VARCHAR

我正在使用UUID作为其中一张表的主键.将这个字段作为varchar / varbinary / blob的利弊是什么?解决方法:基于文本的UUID与基于二进制的UUID之间的区别是相当大的字节数-二进制表示形式为16个,而文本表示形式为30个-因此,二进制是可行的方法.我会选择在BLOB上使用VARBINARY-如果仅因为VARBINARY是较新的类型(并且来自SQL Server背景,我知道VARBINARY可以存储在行中).

MySQL唯一1500 varchar字段错误(#1071-指定的密钥太长)【代码】

我有一个字段(链接)是varchar(1500),并且要使其唯一.我将更改应用于mysql配置,并将长度增加到3072字节ROW_FORMAT=DYNAMIC, innodb_file_format = Barracuda, innodb_large_prefix = true但是,当我对自己的领域应用唯一身份时,会遇到下一个错误:"#1071 - Specified key was too long; max key length is 3072 bytes"我的字段是varchar(1500),即3000个字节. 怎么了? 更新(1)表格数据:CREATE TABLE IF NOT EXISTS `pages` (`link` ...

将字符串/ varchar转换为MySQL表之间的日期【代码】

我有一个大型PHP项目,一直在为自己的业务而努力. 我有一个MySQL表,大约有2600个条目,我想“固定”日期.我的当前表有3个VARCHAR列,其中包含字符串日期.我想将它们转换成重复的表,但是在途中将它们更改为DATE. 进行转换后,一切看起来都很好,我将把新表复制到旧数据库,并且只允许日期选择器连续输入这些日期. 现有的大多数字符串日期都采用mm-dd-yyyy格式,例如:05-03-2013.有些是mm / dd / yyyy,例如:2013年5月3日,有些是MONTH DAY,...

MySQL定义char和varchar类型,utf8编码,则最大值为多少?

有道面试题:若一张表中只有一个字段VARCHAR(N)类型,utf8编码,则N最大值为多少?先明白计算的一些规则限制 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节 ① 存储限制 需要额外地在长度列表上存放实际的字符长度:小于255为1个字节,大于255...