Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

¿Cómo encontrar los caracteres que no sean ASCII en una base de datos MySQL?

30 de diciembre de 2010

Estoy trabajando con una base de datos MySQL que contiene información importada desde un archivo Excel. El problema es que esos datos contienen caracteres no ASCII, como guiones y caracteres de control ocultos (saltos de línea, etc.)

¿Existe alguna manera de detectar los registros que contienen caracteres diferentes al ASCII?


Estás leyendo una traducción autorizada de la pregunta How can I find non-ASCII characters in MySQL? planteada por Ed Mays en StackOverflow.


Respuestas

#1

En primer lugar puedes probar esta consulta, que muestra las columnas cuyo contenido contiene algún caracter diferentes a las letras (mayúsculas o minúsculas) y los números:

SELECT * FROM nombreTabla WHERE NOT nombreColumna REGEXP '[A-Za-z0-9]';

De todas formas, si quieres comprobar estrictamente si la columna contiene algún carácter distinto del ASCII, tendrás que usar la siguiente consulta:

SELECT * FROM nombreTabla WHERE NOT HEX(nombreColumna) REGEXP '^([0-7][0-9A-F])*$';

@javiereguiluz

27 junio 2015, 9:47