mysql的字段检索问题,SELECT 'dau'='新u'结果是1

在我本地的机器上,无论是mysql4.0.14还是mysql4.0.21,执行“SELECT * FROM table1 WHERE field1='dau'”会检索出field1='新u'的记录,执行“SELECT 'dau'='新u'”结果会是1,而在java-cn.com的mysql服务器上执行则还会出现这个问题,显然,这是我本地的数据库设置有问题,而且估计是字符集方面的设置。但是我看了mysql的说明书,5.8.1 The haracter Set Used for Data and Sorting,我不知道怎么样改变数据库的默认字符集。去下载一个中文的说明书看看。在网上看到一种解决此类问题的不彻底的方法:摘录如下:

......解决方法,使用 BINARY 属性进行检索,如:

select id,title,name from achech_com.news where binary title like '-0x1.ebea4bfbebe84p-4%'

返回的结果较之前正确,但英文字母区分大小写,故有时在检索如“Achech”

及“achech”的结果是不一样的。

知道了使用 BINARY 属性可以解决前面这个问题,再看看 MySQL 支持的

UCASE 及 CONCAT 函数,其中 UCASE 是将英文全部转成大写,而 CONCAT 函

数的作用是对字符进行连接,以下是我们完全解决后的 SQL 语句:

select id,title,name from achech_com.news where binary ucase(title) like concat('%',ucase('a'),'%')

检索的步骤是先将属性指定为 BINARY ,以精确检索结果,而被 like 的 title

内容存在大小写字母的可能,故先使用 ucase 函数将字段内容全部转换成大

写字母,然后再进行 like 操作,而 like 的操作使用模糊方法,使用 concat

的好处是传进来的可以是直接的关键字,不需要带“%”万用符,将“'a'”直接

换成你的变量,在任何语言下都万事无忧了。

当然你也可以这么写:

select id,title,name from achech_com.news where binary ucase(title) like ucase('0x0.00020bfbebe08p-1022%')

检索的结果还算满意吧,不过速度可能会因此而慢N毫秒喔。

......

英文的学习

    对于编程的人来说,不通英语就是折了翅的鸟儿,永远也飞不高。学习java更是如此,所以,我一定要学习英语。毕竟,IT技术的先锋是英语国家。当然,风水轮流转,今年到我家。哪天中国领先了,

所有的东西都用中文来表达了,该死的英语我摸都不去摸它了(咬牙切齿)。

学习“java编程思想”等3本Bruce Eckel经典名著

    “java编程思想”,“j2ee编程思想”,“java设计模式”等三本Bruce Eckel的经典名著,我狼吞虎咽的把下载来的“java编程思想”第3版看了一遍,

还差附录几篇精华没看,我得好好的把它看完,免得对java没有一个整体的印象。我又买了一本候捷译的第2版(不知中译本的新版出了没有),想想看看会有一个java的整体印象。

    “j2ee编程思想”,这本书好像还没有中文译本,其中的不少章节不是Bruce Eckel先生亲自写的,里面的英文没有Bruce Eckel先生的通俗风趣易懂,我看得很坚难,(也有可能是

j2ee本身的复杂性吧),我看了刚到j2ee的部分,因为写这个网站程序就没有继续看了,现在我应该继续把它看完,并深入学习其中的j2ee分布式技术。

    “java设计模式”,这本书好像还没有中文译本,我还没有看,可以当成作料把它有空就看看;

    如果刚学java,刚学这本书的朋友有什么问题可以在这个目标中的评论中写出来,我一定知无不言,言无不尽。我有什么问题也会把它贴在这个目标的评论中的,我们共同探讨、学习,

共同在浩瀚的网络中寻找答案,并用日记的形式记下我们奋斗的历程。当然,我更是期待高手的有空来指点我们一二。在此,我等菜鸟先谢谢您了。

我决定开始写邮件系统了

    因为空间商支持邮件系统,可谓不用白不用,我现在就开始着手写邮件系统。这样,大家就可以不用登录本站而

用邮件就可以收到自己感兴趣的目标了。

    1)邮件系统的前提是用户提供了正确的邮件地址,所以在用户注册时就要增加相应的邮件地址有效性验证了,

但是我不想增加系统的复杂性了。所以就取消这个验证了,大家如果想应用这个功能就必须自己保证邮件地址的正确性了。

(我在写这个网站有个80分的理论,我不想把80%的时间浪费在20%上的事情上了,这也是我的一种生活哲学吧。);

    2)同样是我的80分理论,我只想征对对某一个目标下的日记的订阅,不订阅目标下的评论和对日记的评论,待以后

有时间的话再逐步完善;

    3)邮件系统的工作流程:

    1>订阅邮件:“所有目标”(即主页)页面上的栏目已经够杂了(我还想取掉一些),我就把这个订阅的链接放在“显示目标内容”

这个页面上吧,这样,也方便检索功能检索到的目标的订阅;

    2>保存订阅信息:目标与用户的关系显然是多对多的关系,即一个目标可以被多个用户订阅,一个用户可以订阅多个目标,所以,应该

在数据库中单独建一个表(名为usermailgoal)保存“用户__目标”的订阅关系,涉及到的属性还有订阅的时间,如果用户退订了,则在数据库中删除这条记录;

    3>用户提交日记:用户提交日记后,一方面把日记存入数据库,另一方面则向订阅了对应目标的用户发出电子邮件;过程应该是这样的:

以目标ID为关键搜索usermailgoal表,搜索到用户ID,再根据用户ID得到对应的邮件地址,生成发送邮件地址列表,这样就可以把邮件

发出去了;然后,把发送情况告知写日记的用户,再按原来的流程回到日记列表页面;

    4)完成步骤:

    1>上网,看有没有现成的,实行“拿来主义”;

    2>学习SUN的javamailAPI;

    5)时间安排:

    老板出现:这个事情命令你必须在一周内完成!

    我说:关你屁事,我想一天一行,你又啷个?