今天在写SQL语句时发现一个问题:

当prod表里的p_abc字段有两条记录分别是“ea”和“EA”时,如果对这个字段进行查询用这样的语句:

SELECT * FROM prod WHERE p_abc="EA";

这个查询则会把字段是“ea”的记录查询到,而不是“EA”字段。

分析:由于SQL语句在默认的情况下不区分字段的大小写,因此才出现有这样的问题。

解决:在SQL语句中强制它区分大小写,SQL语句改写为:

SELECT * FROM prod WHERE CASE (p_abc AS binary)="EA";

这样就是以字符串的二进制进行比较,区分开了大小写。