一.CONCAT()函数CONCAT()函数用于将多个字符串连接成一个字符串.使用数据表Info作为示例,其中SELECT id,name FROM info LIMIT 1;的返回结果为+----+--------+| id | name   |+----+--------+|  1 | BioCyc |+----+--------+1.语法及使用特点:CONCAT(str1,str2,…)                       返回结果为连接参数产生的字符串.如有任何一个参数为NULL…
在 MySQL 中的行级锁.表级锁和页级锁中,咱们介绍过,行级锁是 MySQL 中锁定粒度最细的一种锁,行级锁能大大减少数据库操作的冲突.行级锁分为共享锁和排他锁两种,本文将详细介绍共享锁和排他锁的概念.使用方式及注意事项. 共享锁(Share Lock) 共享锁又称读锁,是读取操作创建的锁.其他用户可以并发读取数据,但任何事务都不能对数据进行修改(获取数据上的排他锁),直到已释放所有共享锁. 如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁.获准共享锁的事务只能读数据…
原文:http://www.jb51.net/article/89548.htm ------------------------------------------------------------------------------------- 本文分析了PHP中错误与异常的日志记录用法.分享给大家供大家参考,具体如下: 提到 Nginx + PHP 服务的错误日志,我们通常能想到的有 Nginx 的 access 日志.error 日志以及 PHP 的 error 日志.虽然看起来是个…
参考mysql5.7 en manual,对列id的解释: The SELECT identifier. This is the sequential number of the SELECT within the query. The value can be NULL if the row refers to the union result of other rows. In this case, the table column shows a value like <unionM,N>…
解释: SELECT                case                   -------------如果    when sex='1' then '男' -------------sex='1',则返回值'男'    when sex='2' then '女' -------------sex='2',则返回值'女'      else 0                 -------------其他的返回'其他’    end                   …
这两天在弄公司的服务端项目的时候,发现mysql比较实用的3个函数,在这里给大家分享一下. 1.AES_ENCRYPT函数,这个函数的使用场景是对一些安全性要求比较高的数据使用AES加密,语法为: AES_ENCRYPT(str,key),其中第一个参数表示要加密的数据,第二参数是对应的key. 2.AES_DECRYPT函数,这个函数是与AES_DECRYPT对应的一个函数,用于解密经过AES_DNCRYPT加密的数据,语法为:AES_DNCRYPT(str,key). 3.CONVERT函数…
MySQL replace into 有三种形式: 1. replace into tbl_name(col_name, ...) values(...) 2. replace into tbl_name(col_name, ...) select ... 3. replace into tbl_name set col_name=value, ... 1.insert ignore into 当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警告形式返回.所以使用ignore请确保语句…
一般在项目中用法是(这种没办法显示空值的数据): select * from 表 where 字段 like %aaa%; 解决空值不显示(除了显示的数据外,空值数据也可以显示): select * from 表 where 字段 like %aaa% or 字段 is null; 注意:其中 字段 is null  必须要用is  null  不能写成 字段=null…
例1,假设数据库表student存在13条数据. 代码示例: 语句1:select * from student limit 9,4 语句2:slect * from student limit 4 offset 9 // 语句1和2均返回表student的第10.11.12.13行  (注意:都不包括第9行!)//语句2中的4表示返回4行,9表示从表的第十行开始 例2,通过limit和offset 或只通过limit可以实现分页功能.假设 numberperpage 表示每页要显示的条数,pa…
这里的默认构造函数是指在没有编写构造函数的情况下系统默认的无参构造函数 1.当基类中没有自己编写构造函数时,派生类默认的调用基类的默认构造函数例如: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public class MyBaseClass { } public class MyDerivedClass : MyBaseClass {   public MyDerivedClass()   {    Console.WriteLine("我是子…
var foo; alert(!foo);//undifined情况下,一个感叹号返回的是true; alert(!goo);//null情况下,一个感叹号返回的也是true; var o={flag:true}; var test=!!o.flag;//等效于var test=o.flag||false; alert(test); 这段例子,演示了在undifined和null时,用一个感叹号返回的都是true,用两个感叹号返回的就是false,所以两个感叹号的作用就在于, 如果明确设置了变量…
在javascript中有时会看到有两个!!的用法 var foo; alert(!foo);//undifined情况下,一个感叹号返回的是true; alert(!goo);//null情况下,一个感叹号返回的也是true; var o={flag:true}; var test=!!o.flag;//等效于var test=o.flag||false; alert(test); 这段例子,演示了在undifined和null时,用一个感叹号返回的都是true,用两个感叹号返回的就是fals…
连接查询其实就是对两个表记录做笛卡尔乘积.如果不指定连接条件的话,则会对每行都做笛卡尔乘积,这样最后返回的结果树就会是两个表记录数的乘积:如果指定则,则仅对符合列条件的行进行笛卡尔乘积,并返回结果.在这里可以指定两个列相等,也可以自定两个列其他逻辑关系,而且也可以指定多个列通过or或者and进行连接. mysql中主要可以使用如下几种join语法1:join.inner join.cross join:语法:select * from A inner join B on A.id = B.A_I…
FULL OUTER JOIN:SELECT column_name(s)FROM table1FULL OUTER JOIN table2ON table1.column_name=table2.column_name; Mysql中可以使用UNION,同时联合LEFT JOIN 与RIGHT JOIN,如: SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.name = table2.name UNION SELECT…
 MySQL ACMAIN_CHM06-26 16:36 等级 84次回复 [求证&散分]MySQL 中 where id in (1,2,3,4,...) 的效率问题讨论 庆祝本月大版得分过万,兼把在这段论坛中经常被问到的一个问题拿出来大家讨论一下. 命题假设: 测试表如下 create table t_06 ( id int not null primary key, c1 varchar(30), i2 int ) engine = myisam;  delimiter // CREA…
使用联结能够实现用一条SELECT语句检索出存储在多个表中的数据.联结是一种机制,用来在一条SELECT语句中关联表,不是物理实体,其在实际的数据库表中并不存在,DBMS会根据需要建立联结,且会在查询期间一直存在. 联结的本质是第一个表中符合条件的每一行与第二个表中符合条件的每一行进行配对,假如没有WHERE字句或联结条件,则第一个表中的每一行将与第二个表中的每一行进行配对,总共会返回的行数是 主表的行数*附表的行数(即两个表的笛卡尔积).如果第一个表和第二个表中包含的行数非常多,那么就有必要在…
原文链接:http://www.blogjava.net/midnightPigMan/archive/2014/12/15/421406.html MySQL中INSERT的一般用法 INSERT语句是最常见的SQL语句之一,但是MySQL中INSERT语句的用法和标准用法不尽相同,下文就为您详细介绍MySQL中INSERT的一般用法,供您参考. 1用法 在标准的SQL语句中,一次插入一条记录的INSERT语句只有一种形式. INSERT INTO tablename(列名…) VALUES(…
MySQL中case when的基本用法总结原创Backcanhave7 最后发布于2018-12-06 15:14:15 阅读数 439 收藏展开MySQL中的case when有用两种用法,官方文档中的说明如下: 用法一: CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list]END CASE用法二: CASE WHE…
Mysql replace与replace into都是经常会用到的功能:replace其实是做了一次update操作,而不是先delete再insert:而replace into其实与insert into很相像,但对于replace into,假如表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除. replace是mysql 里面处理字符串比较常用的函数,可以替换字符串中的内容.类似的处理字符串的还有trim截取…
原文地址:http://www.oschina.net/question/89964_65912?sort=default&p=3#answers 即使你认为自己已对 MySQL 的 LEFT JOIN 理解深刻,但我敢打赌,这篇文章肯定能让你学会点东西! ON 子句与 WHERE 子句的不同 一种更好地理解带有 WHERE ... IS NULL 子句的复杂匹配条件的简单方法 Matching-Conditions 与 Where-conditions 的不同 关于 “A LEFT JOIN…
join是mysql中一个基础的关键词,一般在多表连接查询中使用,这里做一下总结 1.JOIN的语法格式 table_references: table_reference [, table_reference] ... table_reference: table_factor | join_table table_factor: tbl_name [[AS] alias] [{USE|IGNORE|FORCE} INDEX (key_list)] | ( table_references )…
不多说 直接上语句   SELECT     a.id,     a.thumbNail,     a. NAME,     a.marketPrice,     a.memberPrice,     a.personName,     a. STATUS,     a.recieveOrderDate,     a.trackNumber,     a.contact,     a.reportSendDate,     b.trackNumber,     a.reportDownloadP…
[注意]:Oracle数据库支持full join,mysql是不支持full join的,但仍然可以同过左外连接+ union+右外连接实现 初始化SQL语句:   /*join 建表语句*/   drop database if exists test;   create database test;   use test;       /* 左表t1*/   drop table if exists t1;   create table t1 (id int not null,name v…
Join的几种类型 笛卡尔积(交叉连接) 如果A表有n条记录,B表有m条记录,笛卡尔积产生的结果就会产生n*m条记录.在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者直接用from多表用逗号分开.如 SELECT * FROM table1 CROSS JOIN table2 SELECT * FROM table1 JOIN table2 SELECT * FROM table1 , table2 不用on table1.key1 = table2.key2 得出的结…
通常我们需要连接多个表查询数据,以获取想要的结果. 一.连接可以分为三类: (1) 内连接:join,inner join (2) 外连接:left join,left outer join,right join,right outer join,union,union all (3) 交叉连接:cross join 二.准备需要演示的表: CREATE TABLE `a` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',…
一.Mysql中Left/Right join on后面and和where条件查询的差异 1.建两张测试表,一张商户定义表.一张商户操作状态明细表 1)商户定义表 CREATE TABLE hope.merchant (  MERCHANT_id varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; 2)商户操作…
2.创建联合索引,从坐到右分别为:userid.openId.name   2. #### --------------  多表联合查询 update 2019/03/13  --------------- #### (8)在Join表的时候使用相同类型的例,并将其索引 如果你的应用程序有很多 JOIN 查询,你应该确认两个表中Join的字段是被建过索引的.这样,MySQL内部会启动为你优化Join的SQL语句的机制. 而且,这些被用来Join的字段,应该是相同的类型的.例如:如果你要把 DEC…
近期用phpcms v9做项目,初期没有问题,后期随着数据量的增大,phpcms v9后台出现的栏目更新不动的情况,初期我以为是程序的问题,进行了程序排查,没有发现任何问题,登录上centos服务器后free命令发现内存也没有满.瞬间感觉很蛋疼,不知如何处理,后来登录阿里云账号,发现更新栏目时,cpu使用率直接到达100%,xhell远程登录进入服务器后用top检测cpu使用率的情况,发现MySQL占用的cpu使用率的100%,直接登录进入MySQL数据库,输入show full process…
MySQL中使用INNER JOIN来实现Intersect并集操作 一.业务背景 我们有张表设计例如以下: CREATE TABLE `user_defined_value` ( `RESOURCE_ID` varchar(20) DEFAULT NULL, `COLUMN_NAME` varchar(20) DEFAULT NULL, `VALUE` varchar(255) DEFAULT NULL, KEY `ID_IDX` (`RESOURCE_ID`) ) ENGINE=MyISAM…
一.Simple Nested-Loop Join(简单的嵌套循环连接) 简单来说嵌套循环连接算法就是一个双层for 循环 ,通过循环外层表的行数据,逐个与内层表的所有行数据进行比较来获取结果,当执行select * from user tb1 left join level tb2 on tb1.id=tb2.user_id 时,我们会按类似下面代码的思路进行数据匹配: 整个匹配过程会如下图: 特点: Nested-Loop Join 简单粗暴容易理解,就是通过双层循环比较数据来获得结果,但是…