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)