web-dev-qa-db-fra.com

Copier les valeurs d'une colonne à une autre dans la même table

Comment puis-je copier une valeur d'une colonne à une autre? J'ai:

Database name: list
number | test
123456 | somedata
123486 | somedata1
232344 | 34

Je veux avoir:

Database name: list
number | test
123456 | 123456
123486 | 123486
232344 | 232344

Quelle requête mysql devrais-je avoir?

152
Lucas

La réponse courte pour le code en question est:

UPDATE `table` SET test=number

Ici table est le nom de la table et il est entouré d'accent Grave (c.-à-d. Comme c'est le cas de la convention MySQL avec mots-clés d'échappement (et TABLE est un mot-clé dans celui-ci. Cas).

ATTENTION, c’est une requête assez dangereuse qui effacera tout ce qui se trouve dans la colonne test de chaque ligne de votre table en le remplaçant par le number (quelle que soit sa valeur)

Il est plus courant d'utiliser la clause WHERE pour limiter votre requête à un ensemble de lignes spécifique:

UPDATE `products` SET `in_stock` = true WHERE `supplier_id` = 10
332
Juicy Scripter
UPDATE `table_name` SET `test` = `number`

Vous pouvez également apporter des modifications mathématiques au processus ou utiliser les fonctions MySQL pour modifier les valeurs.

26
Czechnology

essaye ça:

update `list`
set `test` = `number`
9
juergen d

ATTENTION: L'ordre des colonnes de mise à jour est critique

GOOD: Ce que je veux enregistre la valeur existante du statut dans PrevStatus

UPDATE Collections SET  PrevStatus=Status, Status=44 WHERE ID=1487496;

BAD: Status & PrevStatus finissent tous les deux par 44

UPDATE Collections SET  Status=44, PrevStatus=Status WHERE ID=1487496;
7
zzapper

Après a travaillé pour moi ..

  1. Assurez-vous de ne pas utiliser le mode sans échec dans votre éditeur de requêtes. Si vous êtes, désactivez-le!
  2. Puis exécutez la commande suivante SQL

pour une table, par exemple 'test_update_cmd', colonne de valeur source col2, colonne de valeur cible col1 et colonne de condition col3: -

UPDATE  test_update_cmd SET col1=col2 WHERE col3='value';

Bonne chance!

3
nitinr708

essayez de suivre:

UPDATE `list` SET `test` = `number` 

il crée une copie de toutes les valeurs de "nombre" et le colle pour "tester"

3
Jigneshsinh Rathod