标签:mysql
前言今天接到个需求,就是把查询结果按照拼音首字母进行排序,因为之前没有接触过,所以就上网查了下,果然mysql已经帮你做好了。方法1、如果存储的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级汉字就不是了,但考虑到人名等都是常用汉字,因此只是针对一级汉字能正确排序也够用了)。直接在查询语句后面 添加 order by n; 查看全文>
小东Freeman •  •
前言最近在看数据库的时候,发现我们的用户数据有概率会保存两次,我看了代码并没有发现什么问题,都会在插入用户信息前进行判断是否有过用户信息,有则不重复添加,无则添加,所以就想到了是不是高并发带来的脏数据,本以为要对代码进行优化,但是还有更简单的方式,那就是mysql唯一索引就可以解决这个问题。UNIQUE介绍如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UN; 查看全文>
小东Freeman •  •
前言:1.对于mysql,不推荐使用子查询和join是因为本身join的效率就是硬伤,一旦数据量很大效率就很难保证,强烈推荐分别根据索引单表取数据,然后在程序里面做join,merge数据。2.子查询就更别用了,效率太差,执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,这里多了一个创建和销毁临时表的过程。3.如果是JOIN的话,它是走嵌套查询; 查看全文>
小东Freeman •  •
最近做项目,经常要基于当前位置查找附近的人或店铺,之前写过一种关于数据库的查询方式,但是感觉数据上几百万条后查询速度很慢,所以研究了下算法,把当前位置的几公里内的外接正方形的经纬度求出来,如下图所示,然后再对数据库进行范围搜索即可,加上BTREE索引就能实现很快的查询了,下面把源码贴一下。Java源码/**     * 附近选择  &; 查看全文>
小东Freeman •  •
数据库存时间戳。占用资源少,查询速度快。条件范围搜索使用between没什么问题。查询条件自由拼接。一、转换当前时间为时间戳   /**     * @see     * 获得当前时间的时间戳     * @ret; 查看全文>
小东Freeman •  •
前言:在项目开发中经常会遇到根据经纬度查找附近事物的功能,比如附近的人、附近的店铺等等,所以今天给大家介绍下根据经纬度查询附近事物的sql语句。1、根据经纬度按照距离查找附近前几个//lng,lat为数据库字段 SELECT shop_name,lng,lat,           (; 查看全文>
码农 •  •
 最近在项目中用到连接查询,连接查询是关系数据中最主要的查询,包括内连接、外连接等。通过连接运算符可以实现多个表查询。接下来对这几种连接进行简单的赏析。一、内连接(inner join on)说明:组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集(阴影)部分例:select * from a_table a inner&; 查看全文>
码农 •  •
在前段时间换服务器的时候,因为文章的图片的ip地址还是上一个服务器的地址,所以我需要把所有的图片的地址改成现在的服务器地址,但一个一个改未必太麻烦了,所以我发现了一个最便捷的方法,那就是mysql replace 函数Update 表名 SET 列名 = REPLACE( 列名, '被替换的字符', &; 查看全文>
小东Freeman •  •
目前我们使用navicat等数据库操作工具十分便捷,那不使用工具,直接用命令的话该怎么操作mysql呢/* 启动MySQL */net start mysql/* 连接与断开服务器 */mysql -h 地址 -P 端口 -u 用户名 -p 密码/* 跳过权限验证登录MySQL */mysqld --skip-grant-tables-- 修改root密码密码加密函数password()updat; 查看全文>
乔布斯斯 •  •