Apparentemente la funzione CRC32() di MySQL restituisce un BIGINT non firmato, mentre PHP restituisce il valore esadecimale.Come convertire l'hash crc32 di PHP nell'equivalente MySQL?
In PHP:
hash('crc32','hello world') == 7813f744
In MySQL:
SELECT CRC32('hello world') == 222957957
Il valore CRC32 viene memorizzato in un CHAR (8) colonna.
Non riesco a capire come trasformare l'hash generato da PHP nello stesso valore che MySQL produce con solo SQL. L'ovvio non sembra funzionare:
SELECT HEX(CRC32('hello world')) == D4A1185
SELECT CONV('7813f744',16,10) == 2014574404
Tutte le idee?
penso che potrebbe essere necessario usare 'hash ('crc32b', ...)'. Controlla il primo commento qui: http://www.php.net/manual/en/function.hash.php#107920 – Aziz
Come ho detto, mi piacerebbe farlo in SQL senza dover fare nulla in PHP, dal momento che la mia preoccupazione potrebbe essere la conversione dei dati esistenti. – DanMan
In realtà penso di aver frainteso la tua domanda. Pensavo che stavi ottenendo diversi hash da MySQL e PHP. Fammi vedere alcune cose ... – Aziz