分类 数据库 下的文章

mysql多条件模糊查询搜索结果优先按最佳匹配度排序

首先,我们需了解下mysql的locate函数: LOCATE(substr,str):返回字符串str第一次出现的子串substr的位置; LOCATE(substr,str,pos):返回第一次出现在字符串str的子串substr的位置,从位置pos开始。substr不在str中,则返回0。 SQL示例 - 搜索结果按关键词'充电'匹配度优先排序: ```sql SELECT id, title, title_spell, LOCATE("贡院", housename) AS sort_index FROM `xa_house` WHERE `status` = 1 AND ( ( `title` LIKE '%未来%' OR `title`...

继续阅读 »

按最接近当前时间排序 mysql sql查询

**sql按当前时间较近的进行排序 且 大于当前时间的优先排序** ```php 假设数据表: id domain visit_time 1 blog.fity.cn 1570550400 #2019/10/9 2 fity.cn 1567958400 #2019/9/9 3 www.fity.cn 1562601600 #2019/7/9 ``` ```php 假设今天是2019/8/6,希望排序顺序: id domain visit_time 2 fity.cn 1567958400 #2019/9/9 1 blog.fity.cn 1570550400 #2019/10/9 3 www.fity.cn 1562601600 #2019/7/9 ...

继续阅读 »

mysql用户变量 mysql用户自定义变量 @:=

mysql用户自定义变量:可以先在用户变量中保存值然后在以后引用它;这样可以将值从一个语句传递到另一个语句。用户变量与连接有关。也就是说,一个客户端定义的变量不能被其它客户端看到或使用。当客户端退出时,该客户端连接的所有变量将自动释放。 用户变量的形式为`@var_name`,其中变量名var_name可以由当前字符集的文字数字字符、‘.’、‘_’和‘$’组成。 默认字符集是cp1252 (Latin1)。可以用mysqld的--default-character-set选项更改字符集。用户变量名对大小写不敏感。 设置用户变量的一个途径是执行SET语句: >SET @var_name = expr [, @var_name = expr] ... 对于SET,可以使用=或:=作为分配符...

继续阅读 »

The server quit without updating PID file解决

The server quit without updating PID file (/usr/local/mysql/var/xxx.pid). ... failed错误解决错误信息详细描述:root@MyServer:~# service mysql startStarting MySQL..The server quit without updating PID file (/usr/local/mysql/var/MyServer.pid). ... failed!错误解决排查思路:1.可能是/usr/local/mysql/data/rekfan.pid文件没有写的权限解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /us...

继续阅读 »

mongodb与mysql优缺点比较

mongodb与mysql优缺点比较,与关系型数据库相比,MongoDB的优点:①弱一致性(最终一致),更能保证用户的访问速度:举例来说,在 传统的关系型数据库中,一个COUNT类型的操作会锁定数据集,这样可以保证得到“当前”情况下的精确值。这在某些情况下,例如通过ATM查看账户信息的 时候很重要,但对于Wordnik来说,数据是不断更新和增长的,这种“精确”的保证几乎没有任何意义,反而会产生很大的延迟。他们需要的是一个“大约” 的数字以及更快的处理速度。但某些情况下MongoDB会锁住数据库。如果此时正有数百个请求,则它们会堆积起来,造成许多问题。我们使用 了下面的优化方式来避免锁定:每次更新前,我们会先查询记录。查询操作会将对象放入内存,于是更新则会尽可能的迅速。在主/从部署方案中,从节点可以使用 “...

继续阅读 »

mysql replace

**mysql replace,mysql replace替换,mysql替换,mysql substring,mysql locate** **语法格式:** > UPDATE 表名 SET 字段名 = REPLACE ( 替换前的字段值, '替换前关键字', '替换后关键字' ) WHERE 字段名 REGEXP "替换前的字段值"; **示例Demo:** (1)替换b-blog表主键id为9的content字段内容www.www.fity.cn为www.fity.cn: ```sql UPDATE b_blog SET content = REPLACE ( content, 'www.www.fity.cn', 'www....

继续阅读 »

SQL查询重复数据并列出重复数据

##### SQL按字段查询重复数据并列出重复数据 例如:查询重复2次的数据并列出 select * from park_room where parkNum in ( select parkNum from park_room group by parkNum having count(parkNum) > 1 ) order by parkNum 字段信息说明: *park_room--停车位表 parkNum--车位号* mysql查找重复记录sql语句 select mobilePhone,count(*) as count from xk_utd_house_basic group by...

继续阅读 »

sql查询数据表唯一或相同重复数据记录

**MySQL筛选查询数据库唯一数据记录,非重复数据,仅显示唯一的数据:** ```sql select parkNum ,count(parkNum) from park_room group by parkNum having count(parkNum)1 #这个的意思是从表中查找有相同数据的数据,就是这条数据在这个表里面不只一条的记录 ``` **注释:** *park_room--停车位表 parkNum--车位字段名* 实例: 假设park_room表信息如下: ![](https://www.fity.cn/usr/uploads/2014/06/1402113009_89186993.jpg) **当我们查询该表唯一记录时会输出如下信息:** ![](...

继续阅读 »

MySQL子查询常见格式

##### MySQL常见的几种子查询形式 mysql从4.1版开始支持子查询功能,在此版本前,可以用join写连表查询来进行替代,但不推荐这么写,相当的麻烦。mysql子查询的几种常见写法: select * from xxx where col = [any|all](select * from xxxx); 该句法可分为加关键词和不加关键词的写法,当不加关键词的时候,子查询语句返回的是一个离散值(注意是一个),查询语句将以子查询语句的结果作为自己 where子句的条件进行查询,该句法可以在子查询语句前加入any、all、some等关键字,此时子查询语句返回的是一组离散值。any则表示,查询语句是以子查询返回的值作为一个范围,在此值范围内进行查询,其与in关键字相像;al...

继续阅读 »

MySQL HandlerSocket

MySQL HandlerSocket 插件说明与安装配置一、HandlerSocket是什么?HandlerSocket是akira higuchi写的一个MySQL的插件。以MySQL Daemon Plugin的形式提供类似NoSQL的网络服务,通过这个插件,你可以直接跟MySQL后端的存储引擎做key-value式的交互,省去了MySQL上层的SQL解释、打开关闭表、创建查询计划等CPU开销。目前使用MySQL的网站,多半同时使用Memcache作为键值缓存。虽然这样的架构极其流行,有众多成功的案例,但过于依赖Memcache,无形中让Memcache成为故障的根源:Memcache数据一致性的问题:当MySQL数据变化后,如果不能及时有效的清理掉过期的数据,就会造成数据不一致。这在强调即时性的W...

继续阅读 »