MySQL ORD() function returns the code for the leftmost character if that character is a multi-byte i.e. sequence of one or more bytes, with the help of the following formula
(1st bytecode) + (2nd bytecode * 256) + (3rd bytecode * 256^2)
On the other hand, ASCII() function returns the ASCII value of the leftmost character of a given string.
The difference between them lies on the point that whether the leftmost character is a multi-byte character or not. If it is not a multi-byte character then both ORD() and ASCII() functions return similar results. Following example will demonstrate it.
mysql> Select ORD('Tutorialspoint'); +-----------------------+ | ORD('Tutorialspoint') | +-----------------------+ | 84 | +-----------------------+ 1 row in set (0.00 sec) mysql> Select ASCII('Tutorialspoint'); +-------------------------+ | ASCII('Tutorialspoint') | +-------------------------+ | 84 | +-------------------------+ 1 row in set (0.00 sec)