十二月 « 2013 « 邵珠庆の博客

邵珠庆の博客 生命只有一次,你可以用它来做些更多伟大的事情–Make the world a little better and easier

16十二/130

Git常用命令列表

发布在 邵珠庆

修改git-log的日期格式

git config log.date iso

git config --global log.date iso

58d89a6793db91_

58d89a6793db92_

58d89a6793db93_

58d89a6793db94_

58d89a6793db95_

58d89a6793db96_

58d89a6793db97_

58d89a6793db98_

58d89a6793db99_

58d89a6793db910_
[......]阅读全文

16十二/130

Mysql函数GROUP_CONCAT

发布在 邵珠庆

GROUP_CONCAT()是MySQL数据库提供的一个函数,通常跟GROUP BY一起用,具体可参考MySQL官方文挡:http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat

语法:

GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC |DESC] [,col_name ...]] [SEPARATOR str_val])

1.例如:
SELECT student_id, GROUP_CONCAT(courses_id) AS courses FROM student_courses WHEREstudent_id=2 GROUP BY student_id; 
+------------+---------+ 
| student_id | courses | 
+------------+---------+ 
| 2          | 3,4,5 |
+------------+---------+ 
这 就不需要用php循环了
$row = $pdo->query("SELECT student_id, GROUP_CONCAT(courses_id) AS courses FROM student_courses WHERE student_id=2 GROUP BY student_id");
$result = explode(',', $row['courses']); 


2.当然分隔符还可以自定义,默认是以“,”作为分隔符,若要改为“|||”,则使用SEPARATOR来指定,例如:
SELECT student_id, GROUP_CONCAT(courses_id SEPARATOR '|||') AS courses FROM student_coursesWHERE student_id=2 GROUP BY student_id;
+------------+---------+ 
| student_id | courses | 
+------------+---------+ 
| 2          | 3|||4|||5 |
+------------+---------+ 

3.除此之外,还可以对这个组的值来进行排序再连接成字符串,例如按courses_id降序来排:
SELECT student_id, GROUP_CONCAT(courses_id ORDER BY courses_id DESC) AS courses FROMstudent_courses WHERE student_id=2 GROUP BY student_id;
+------------+---------+ 
| student_id | courses | 
+------------+---------+ 
| 2 | 5,4,3 |
+------------+---------+ 

4.需要注意的:

a.i[......]阅读全文

6十二/130

mysql中or和in的效率问题

发布在 邵珠庆

在网上一直看到的是orin效率没啥区别,一直也感觉是这样,前几天刚好在看《mysql数据库开发的36条军规》的文章,里面提到了orin效率问题,文中提到or效率为O(n),而in效率为O(logn), 当n越大的时候效率相差越明显。今天刚好有时间决定对心中的疑惑进行测试,下面是详细的测试过程。

第一步,创建测试表,并生成测试数据,测试数据为1000万条记录。数据库版本为5.1.63。数据库中关闭了query cache,因此数据库缓存不会对查询造成影响。具体的代码如下:

[......]阅读全文

4十二/130

MYSQL在默认的情况下查询不区分大小写

发布在 邵珠庆

MYSQL在默认的情况下查询是不区分大小写的,例如:

mysql> create table t1(
    -> name varchar(10));
Query OK, 0 rows affected (0.09 sec)

mysql> insert into t1 values('you'),('You'),('YOU');
Query OK, 3 rows affected (0.05 sec)
Records: 3&n[......]阅读全文