Según la respuesta correcta, pero teniendo en cuenta también los caracteres de control ASCII, la solución que funcionó para mí es esta:
SELECT * FROM `table` WHERE NOT `field` REGEXP "[\\x00-\\xFF]|^$";
Hace lo mismo: busca violaciones del rango ASCII en una columna, pero también le permite buscar caracteres de control, ya que utiliza la notación hexadecimal para los puntos de código. Como no hay comparación o conversión (a diferencia de la respuesta de @ Ollie), esto también debería ser significativamente más rápido. (Especialmente si MySQL hace una terminación anticipada en la consulta de expresiones regulares, que definitivamente debería).
También evita la devolución de campos de longitud cero. Si desea una versión un poco más larga que funcione mejor, puede usar esto en su lugar:
SELECT * FROM `table` WHERE `field` <> "" AND NOT `field` REGEXP "[\\x00-\\xFF]";
Hace una verificación de longitud por separado para evitar resultados de longitud cero, sin considerarlos para un pase de expresiones regulares. Dependiendo del número de entradas de longitud cero que tenga, esto podría ser significativamente más rápido.
Tenga en cuenta que si su conjunto de caracteres predeterminado es algo extraño donde 0x00-0xFF no se asigna a los mismos valores que ASCII (¿existe tal conjunto de caracteres en algún lugar?), Esto devolvería un falso positivo. De lo contrario, disfruta!