基本上在我的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)