2012-08-23 34 views
2

在mySQL中,我必須使用WHERE BINARY UPPER(col1) = col1,但在Oracle中它沒有問題。有人可以向我解釋爲什麼這是嗎?我是mySQL的新手。爲什麼column = upper(column)在Oracle中工作,但不在MySQL中?

所以看着它與下面的語句

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

結果在甲骨文:

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 
+1

是否區分大小寫? – SLaks

回答

3

你的MySQL的排序規則是不區分大小寫的...所以'CARL' = 'Carl'是真實的。

1

在您的WHERE和UPPER之間放置BINARY字樣。這將強制區分大小寫比較

相關問題