6
votes

Séparation de la valeur séparée par des virgules

J'ai une table avec les types d'enregistrements suivants. J'ai vendeur code> et les numéros de compte associés (virgule séparés).

+----------+----------+
| Salesman | Acct     |
+----------+----------+
| Ron      | 1,2,3,4  |
| Kin      | 6,7,8    |
| Joe      | 10,23,45 |

I am looking for output some thing like,

+----------+----------+
| Salesman | Acct     |
+----------+----------+
| Ron      | 1        |
| Ron      | 2        |
| Ron      | 3        |


0 commentaires

4 Réponses :


4
votes

Je suppose que vous en avez besoin, tout comme une opération unique afin de restructurer votre schéma dans quelque chose d'utilisable.

Avez-vous une autre table qui répertorie tous les numéros de compte possibles? Si vous faites, vous pouvez le faire: P>

SELECT salesman, a.Acct
FROM account AS a
JOIN salesman_account AS sa
ON FIND_IN_SET(a.Acct, sa.Acct)


1 commentaires

Cela a parfaitement fonctionné. Merci beaucoup. Hope OP marque cela comme réponse :)



3
votes

Vous pouvez le faire avec une procédure stockée. Voir http: //kedar.nitty- witty.com/blog/mysql-stororé-procédra-split-Delimited-string-into-orts pour un exemple qui semble résoudre votre problème.


0 commentaires

2
votes

S'il s'agit d'une opération unique, il est probablement plus facile d'utiliser n'importe quel langage de support pour effectuer le traitement. Python ou PHP est très rapide dans le développement de tels scripts.


0 commentaires

1
votes

Eh bien, c'est une chose très difficile à faire.

Je suppose que vous normaliserez votre base de données. Sinon, vous devriez vraiment.

Si j'étais vous, j'écris un script pour normaliser la table. Ensuite est un échantillon de PHP (il peut contenir des erreurs): xxx


0 commentaires