2015-11-07 54 views
0
mysql> SELECT STRCMP('_', 'a'); 

返回1,而它应该返回-1。带下划线的MySQL STRCMP不能正常工作

ASCII code of '_' (underscore) is 95, and ascii code of 'a' is 97

在其他语言,如Python和节点它返回正确的答案。

任何线索这里有什么问题?

为什么MySQL对待不同的下划线?

回答

1

发现此问题。

STRCMP()不区分大小写的比较,在这里我需要 区分大小写的比较。

mysql> STRCMP('_', 'a' COLLATE utf8_bin); 

返回正确的答案-1