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 -fpara 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.

