MySQL如何在虚拟字段定义中实现条件

时间:2017-06-07 12:35:11

标签: php mysql

我正在使用下面的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;
}

1 个答案:

答案 0 :(得分:1)

SELECT IF(@crc & 0x80000000, @crc ^ 0xffffffff, @crc + 1)
FROM (SELECT @crc := ABS(CRC32('your_value'))) v