2010-03-17 5 views
0

J'ai une grande base de données utilisateur (13k +), et pour une raison quelconque, j'ai besoin de créer des noms aléatoires. La table des utilisateurs a "first_name" et "last_name". Maintenant, je veux avoir 10 concats de full_name et last_name de deux lignes complètement aléatoires. Est-ce possible avec SQL?Comment obtenir des conchats randomisés basés sur 2 colonnes de 1 table?

Mon autre idée était juste de créer une table full_names et last_names ... mais ce ne serait pas aussi difficile.

Oh, et il ne devrait pas prendre trop de performances :) (si commande par rand() n'est pas une option;))

Répondre

0

Je ne comprends pas « 10 concats de full_name et last_name de deux complètement des rangées aléatoires », donc ce ne sera probablement pas votre réponse finale, mais cela devrait vous mener dans la bonne direction. Pour une réponse plus complète, veuillez fournir quelques exemples de résultats de ce que vous cherchez, ainsi que votre schéma de base de données.

Cela devrait généralement être fait en code, pas en SQL. Cependant, c'est possible en SQL. Il y a une exigence. Vous devez avoir une colonne incrémentielle de clé entière. Par exemple, la clé doit commencer à 1 et se terminer à 13000.

L'implémentation RAND() peut varier en fonction de votre fournisseur de base de données.

est ici la requête:

SELECT CONCAT(u1.first_name, ul.last_name) AS full_name 
FROM users 
WHERE mykey = FLOOR(1 + (RAND() * 13000)) 

Si la clé a des lacunes, il devient un peu plus compliqué et le caractère aléatoire favorisera les lacunes, donc je l'espère, il n'y a pas de lacunes.

Questions connexes