Archive for the 'mysql' Category

mysql中,如果需要null参与运算怎么办。

一月 4th, 2007 by xLight

今天和同事合作一个接口程序时遇到了这个问题。搜索结果

SQL中,任何和NULL直接进行运算,结果都只会得到NULL。
NULL在SQL中代表“不确定”,而不是“空”,这是一个很重要的概念,很多地方都需要注意。

处理null参与运算的方法:使用 ifnull 函数。


mysql> select ifnull(null,123);
+------------------+
| ifnull(null,123) |
+------------------+
| 123 |
+------------------+
1 row in set (0.01 sec)

mysql> select ifnull(null,0);
+----------------+
| ifnull(null,0) |
+----------------+
| 0 |
+----------------+
1 row in set (0.00 sec)

参见:MySQL手册3.3.4.6. Working with NULL Values 中的用户评论部分。

好文推荐(技术类)- MySQL的优化

八月 20th, 2006 by xLight

xLight: 这篇文章比较全面地介绍了mySQL优化的各个方面。虽然都不很深入,但足以拓展我的思路了。俗话说,师傅领进门,修行在个人嘛。(Oracle: I can only show you the door, you have to walk through. from “matrix”)

MySQL的优化 from Linux技术中坚站

扬SQL之长,其它事情交由应用去做。使用SQL服务器来做:

  • 找出基于WHERE子句的行。
  • JOIN表
  • GROUP BY
  • ORDER BY
  • DISTINCT

不要使用SQL来做:

  • 检验数据(如日期)
  • 成为一只计算器

技巧:

  • 明智地使用键码。
  • 键码适合搜索,但不适合索引列的插入/更新。
  • 保持数据为数据库第三范式,但不要担心冗余信息或这如果你需要更快的速度,创建总结表。
  • 在大表上不做GROUP BY,相反创建大表的总结表并查询它。
  • UPDATE table set count=count+1 where key_column=constant非常快。
  • 对于大表,或许最好偶尔生成总结表而不是一直保持总结表。
  • 充分利用INSERT的默认值。

更多请访问:MySQL的优化

好文推荐(技术类)– mysql 5.1新功能 -- 按日期分区

八月 20th, 2006 by xLight

mysql 5.1新功能 -- 按日期分区 from 某人的栖息地 by volcano
mysql 5.1已经到了beta版,官方网站上也陆续有一些文章介绍,比如上次看到的Improving Database Performance with Partitioning。在使用分区的前提下,可以用mysql实现非常大的数据量存储。今天在mysql的站上又看到一篇进阶的文章 —— 按日期分区存储。如果能够实现按日期分区,这对某些时效性很强的数据存储是相当实用的功能。下面是从这篇文章中摘录的一些内容。
详情请见:mysql 5.1新功能 -- 按日期分区 

mysql like 字符串中间有空格不行? - updated 060626

六月 23rd, 2006 by xLight

 

shit, 今天怎么不能复现这个问题了呢!难道那天sql服务出了问题? 

SHIT! 总算发现问题所在了,原来数据库中的数据:ye与lan之间有两个空格,而不是一个!

而到页面上,由于HTML的原因,连续两个空格被解析成了一个可见空格,所以我C&P后再查询就说什么都查询不出来

 

================================= 

SELECT * FROM `table`WHERE  `col` LIKE ‘%ye lan%’;

其中 col字段 是 text 类型,

似乎由于“ye lan”中间的空格 查询不出结果

原因?我不知道,我想知道