MySQL的CRC32功能输出是否随同一输入而变化?

时间:2014-04-19 17:24:34

标签: mysql crc32

基本上在我的MySQL数据库中,我有第一个字母大写的字符串。它们存储为VARCHAR。出于某种原因,我在一个单词上使用CRC32函数,例如" action"我得到一个具体的号码。当我在LOWER上运行相同的CRC32功能时(" Action")我得到一个不同的数字。

所以当我使用以下查询时:

SELECT genre, CRC32( genre ) AS genre1, LOWER( genre ) AS
genre2, CRC32( LOWER( genre )) AS genre3
FROM `films`
WHERE 1
LIMIT 0 , 30

我得到以下输出:

genre   |   genre1      |   genre2  |   genre3

action  |   1204587666  |   action  |   1204587666

Action  |   1252886437  |   action  |   3017532915

正如你可以看到"动作"的CRC32当它从MySQL的LOWER函数改变时,从最初的小写变为不同的值。第二行中的genre3应该等同于第一行中的genre1和genre3。

为什么会这样?无论如何都要使CRC32(LOWER(" Action"))等同于CRC32("动作")? (我需要CRC32(LOWER(" Action))来输出1204587666,我不能有CRC32("动作")输出3017532915)

0 个答案:

没有答案