默认情况下,MySQL将null算作最小值。 使用:if(isnull(字段名),1,0) 说明:它的意思是将该字段根据是否为null值分成两部分,0相当于null值部分放在最后面,1相当于非null值部分放在前面,在排序的时候,先根据这一属性进行升序排列 selectcity_code, ins_code, organ_type, organ_name, organ_address,organ_access_url,state, longitude, latitude,area, organ_category, adCode, organ_catagery, ROUND(6371.393 * 2 * ASIN(SQRT...
原因当然很简单因为update table set xxx = ‘content‘时content一般由英文单引号‘或者双引号"包裹起来,使用单引号较多。 如果content中包含单引号‘时我们需要对单引号‘进行转义或者将content用双引号括起来,这样双引号"里面的单引号‘就会被视为普通的字符,同理如果content中包含双引号"那么我们就可以换成单引号括起来content,这样双引号"就会被视为普通字符。但是如果content中既包含单引号‘又包含双引号",这时我们就不...
方法一:like SELECT * FROM 表名 WHERE 字段名 like "%字符%";方法二:find_in_set() 利用mysql 字符串函数 find_in_set(); SELECT * FROM users WHERE find_in_set(‘字符‘, 字段名);mysql有很多字符串函数 find_in_set(str1,str2)函数是返回str2中str1所在的位置索引,str2必须以","分割开。注:当str2为NO1:“3,6,13,24,33,36”,NO2:“13,33,36,39”时,判断两个数据中str2字段是否包含‘3’,该函数可完美解决 mysql > SE...
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 数值类型类型大小范围(有符号)范围(无符号)用途TINYINT 1 字节 (-128,127) (0,255) 小整数值SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值BIGINT 8 字节 (-9 233 372 036 854 7...
INTO `permeationdomain` VALUES (‘10000.ys.51juban.com‘, ‘282‘, ‘superman‘, ‘2020-01-06 08:54:28‘, null, null, null, null, null, null); INSERT INTO `permeationdomain` VALUES (‘5198.alog.com‘, ‘282‘, ‘superman‘, ‘2020-01-06 08:54:28‘, null, null, null, null, null, null); INSERT INTO `permeationdomain` VALUES (‘51juban.com‘, ‘282‘, ‘superman‘, ‘2020-01-06 08:54:28‘, null, null...
使用alter子句修改表信息主要有两个用途。 修改表名alter table yanggb rename to yanggb1; 修改表注释alter table yanggb comment ‘yanggb is 666‘;修改字段信息 使用alter子句修改表中的字段信息的用途就多了。 修改字段类型和注释alter table yanggb modify column yanggb1 varchar(200) comment ‘yanggb is 666‘;修改字段类型alter table yanggb modify column yanggb1 text;单独修改字段注释目前没发现有单独修改字段注释...
where,group by,having,order by的时候,执行顺序和编写顺序是:from --> where --[result 1]--> group by --[result 2]--> select (x N) --[result 3]--> having --[result 4]--> order by --> OUTPUT 1.执行where xx对全表数据做筛选,返回第1个结果集。 2.针对第1个结果集使用group by分组,返回第2个结果集。 3.针对第2个结果集中的每1组数据执行select xx,有几组就执行几次,返回第3个结果集。 ...
1、长度 2、默认 3、主键 4、非空 5、Unsigned 6、自增 7、Zerofill 1. 长度 数据的长度。 2. 默认 设置默认值,比如sex设置默认值为男,即不填内容,默认值就是男。 3. 主键 一个表只设一个主键,比如id就可以设为主键,彼此的id不同,即彼此的主键值不同。 4. 非空 1、如果勾上了,若不填值,就会报错 2、如果没勾上,若不填值,默认为null 5. Unsigned 1、无符号的整数 2、声明了该列不能声明为负数 6. 自增 1、自动在上一条记录...
写在前面:注意,所有的字段名,最好都用``包裹! 1、修改表名 2、增加表的字段(id,name,age这种就是字段) 3、修改表的字段(重命名字段+修改字段的类型和约束) 4、删除表的字段 1. 修改表名 -- 修改表名,格式:ALTER TABLE 旧表名 RENAME AS 新表名; -- 修改表名,格式:ALTER TABLE 旧表名 RENAME AS 新表名;ALTER TABLE teacher RENAME AS teacher_1; 2. 增加表的字段(id,name,age这种就是字段) -- 增加表的字段,格式:ALT...
一、说明假期有时间可以多去看看一些表的设计,发现了不少问题,老系统上过百的字段,里面含有大量的mediumtext,不到500万的数据量,开发规范中有要求表设计不要超过500万数据量。查看了表占用的磁盘空间120G,毫无疑问是大表,当初设计的时候就没有考虑过设计。一句话上线能用就行,管他呢。 二、MySQL规范1、单表不要超过500万条记录,同时评估单表所占用磁盘空间不要超过50G,否则考虑优化、分表等。2、禁用text字段类型,如果...
into 表名(待插入字段1,待插入字段2,...,待插入字段n) select ‘张三‘,‘1‘,...,‘袜子‘ from 表名 a where not exists(select 1 from 表名 b where b.判断条件字段1=‘张三‘ and b.判断条件字段2=‘1‘ and 判断条件字段n=‘23531172612‘) 【注】 where not exists:如果其后查询出了结果,则该条件成立, 否则,不成立1mysql 指定的字段如果重复(已存在),则不再插入标签:style sel insert font col ...
1 前言 本文来自回答思否网友的一个问题,这个网友新建了一张表,auto_increment_increment设为10,AUTO_INCREMENT主键起始值设为9, 当他插入数据的时候,发现主键值是从11开始的,所以产生了疑惑。这篇文章一起来讨论一下自增字段问题。 2 自增字段计算方式 自增字段取值和auto_increment_increment参数和auto_increment_offset参数有关,auto_increment_offset参数设置的是自增字段偏移值,也就是计算起始值,auto_increment_inc...
前言 紧接上文。 正文 type type字段有如下类型: 1.all 2.index 3.rang 4.ref 5.eq_ref 6.const,system 7.null 最好到最差的顺序为: system>const>eq_red>ref>range>index>all 优化的标准为至少达到range级别,最好是ref级别。 system 表只有一行记录,这是const类型的特列,基本不会出现。 const:表示通过一次就找到了,const 一般是在primary_key 或者 unique 索引。因为只匹配一行数据,所以很快。 eq_ref:唯一索引扫描,对每个...
1、PASSWORD() 2、ENCODE(,) DECODE(,) 3、MD5()4、SHA5() 5、AES_ENCRYPT AES_DECRYPT 加密 select aes_encrypt(name, ‘password ‘);解密 select aes_decrypt(aes_encrypt(name, ‘password ‘), ‘password ‘); 可用hex或base64转码(base64在mysql5.6及以上支持) select hex(aes_encrypt(‘5656‘, ‘zh‘)); select aes_decrypt(unhex(hex(aes_encrypt(‘5656‘, ‘zh‘))), ‘zh‘); select to_base64(aes_en...
不需要自建自增的辅助表,Mysql自带help_topic可以使用; SELECT SUBSTRING_INDEX( SUBSTRING_INDEX( target_column, ‘,‘, b.help_topic_id + 1 ), ‘,‘, -1 ) AS coop_branch FROM survey_draft AS a JOIN mysql.help_topic AS b ON b.help_topic_id < ( length( a.target_column ) - length( REPLACE ( a.target_column, ‘,‘, ‘‘ ) ) + 1 ) 其中help_topic_id共有504个值,既是你要拆分的字段中最多包含五百个逗号,在mys...