Mcatorce Suite
← Volver al blog

Ordenar líneas y preparar datos de texto plano para SQL y código

Convierte una lista cruda de IDs o valores en una cláusula SQL IN, un arreglo o una lista numerada listos para pegar, con operaciones sencillas de líneas en lugar de un script.

Prueba la herramienta: Herramientas de Líneas

Los desarrolladores reciben datos constantemente en el formato menos cómodo imaginable: una columna de números de pedido en un mensaje de chat, una lista de IDs de usuario de un ticket de soporte, un bloque de correos de una hoja de cálculo. La tarea casi siempre es la misma: llevar esos valores a una consulta, un archivo de configuración o un dato de prueba. Escribir un script desechable cada vez es excesivo y reformatear a mano invita a los errores de dedo.

Este artículo muestra cómo unas pocas operaciones a nivel de línea cubren la gran mayoría de estos trabajos.

Empieza con un valor por línea

Todas las técnicas siguientes suponen que los datos tienen un elemento por línea. Si tu origen es una columna de hoja de cálculo, al copiarla obtienes exactamente eso. Si está separado por comas, reemplaza primero las comas por saltos de línea para poder usar las mismas herramientas.

Limpia antes de transformar

Antes de dar forma, aplica los pasos de limpieza: recortar espacios, quitar líneas vacías y quitar duplicados. Un ID duplicado en una lista SQL IN es inofensivo pero innecesario, mientras que un espacio suelto dentro de una cadena entre comillas hará que una búsqueda falle en silencio. Dedica diez segundos a limpiar y te ahorras una hora de confusión.

Construir una cláusula SQL IN

Supón que tienes estos IDs de cliente:

10482
10311
10482
10977

Tras quitar el duplicado y ordenar numéricamente tienes:

10311
10482
10977

El orden numérico es importante aquí. Un orden alfabético simple colocaría 10977 antes de 1099, porque compara carácter por carácter. Un orden numérico compara valores.

Para números, añade una coma al final de cada línea y envuelve todo entre paréntesis:

SELECT * FROM orders WHERE customer_id IN (
10311,
10482,
10977
);

Para valores de texto, añade una comilla como prefijo y una comilla más coma como sufijo para obtener 'ana@example.com', en cada línea. Recuerda quitar la última coma, porque SQL no permite una coma final.

Construir arreglos y listas JSON

El mismo método crea arreglos literales para casi cualquier lenguaje. Para JavaScript o JSON, envuelve cada línea entre comillas dobles, añade comas y rodea el resultado con corchetes. En Python son habituales las comillas simples y para scripts de shell quizá prefieras una lista separada por espacios.

const ids = [
  "10311",
  "10482",
  "10977",
];

Los lenguajes más nuevos toleran comas finales, lo que facilita aún más este enfoque porque cada línea puede tratarse igual.

Trucos con prefijos y sufijos

Añadir un prefijo o sufijo a cada línea es sorprendentemente potente:

  • Prefija con rm -f para convertir una lista de nombres de archivo en comandos de borrado.
  • Prefija con INSERT INTO tags (name) VALUES (' y sufija con '); para producir una sentencia insert por línea.
  • Prefija con - [ ] para crear una lista de verificación en Markdown.
  • Prefija con https://example.com/ para construir una lista de URLs a partir de una lista de slugs.

Revisa siempre los comandos generados antes de ejecutarlos, sobre todo los destructivos.

Ordenar para estabilidad y revisión

Los datos ordenados son más fáciles de comparar en un diff. Si guardas una lista en un archivo de configuración o en una prueba de instantáneas, mantenerla ordenada hace que añadir un elemento produzca un cambio de una sola línea en vez de reordenar todo el archivo. Quienes revisan pueden verificar el contenido mucho más rápido.

El orden natural, que trata los números incrustados como números, ayuda con valores como item2 e item10, que de otro modo quedarían mal ordenados.

Mezclar y muestrear

Una mezcla aleatoria es útil para datos de prueba y muestreo. Mezcla una lista, toma las diez primeras líneas y tendrás un subconjunto aleatorio sin sesgo para probar sin escribir código.

Llevarlo a la práctica

Todas estas operaciones están disponibles en las herramientas de líneas: ordenar alfabética, numéricamente o por longitud, quitar duplicados y líneas en blanco, recortar, numerar líneas y añadir un prefijo y un sufijo a cada línea. Las operaciones se aplican sobre el texto y se pueden deshacer, así que puedes experimentar sin riesgo, y tus datos se quedan en el navegador.

Una advertencia

Construir SQL pegando valores está bien para consultas puntuales contra tu propia base de datos. En el código de una aplicación, usa siempre consultas parametrizadas, porque concatenar entradas no confiables en SQL es la forma en que nacen las vulnerabilidades de inyección. Trata estos trucos como herramientas para scripts, depuración y trabajo con datos, no como sustituto de una construcción adecuada de consultas en producción.