我正在使用下面的PHP函数来计算PHP中字符串的校验和。 xor需要在32位和64位php平台上生成相同的值。
我想在MySQL选择查询中创建一个具有相同值的虚拟字段。 SELECT ABS(CRC32(ui_data))由于校验和FROM user_data有效但我不知道如何在SELECT语句中实现if部分以使其与PHP函数完全兼容。
10X
function checksum ($orig_id) {
$crc= abs (crc32($orig_id));
if( $crc & 0x80000000){
$crc ^= 0xffffffff;
$crc += 1;
}
return $crc;
}
答案 0 :(得分:1)
SELECT IF(@crc & 0x80000000, @crc ^ 0xffffffff, @crc + 1)
FROM (SELECT @crc := ABS(CRC32('your_value'))) v