为什么column = upper(列)在Oracle中工作但在MySQL中不起作用?

时间:2012-08-23 20:18:47

标签: mysql sql oracle

在mySQL中我必须使用WHERE BINARY UPPER(col1) = col1,但在Oracle中它没有问题。有人能解释一下为什么会这样吗?我是mySQL的新手。

所以用以下陈述来看待它

select upper(col1),col1
from mytable
where upper(col1) = col1;

Oracle中的结果:

UPPER(COL1)          COL1               
-------------------- --------------------
JÜRGEN               JÜRGEN               
RENÉ                 RENÉ                 
CARL                 CARL 

MySQL中的结果

UPPER(COL1)          COL1               
-------------------- --------------------
JÜRGEN               JÜRGEN               
JÜRGEN               Jürgen               
RENÉ                 René                 
RENÉ                 RENÉ                 
CARL                 Carl                 
CARL                 CARL 

3 个答案:

答案 0 :(得分:4)

答案 1 :(得分:3)

您的MySQL排序规则不区分大小写......所以'CARL' = 'Carl'为真。

答案 2 :(得分:1)

在您的WHERE和UPPER之间放置单词BINARY。这将迫使进行区分大小写的比较