2017-07-11 4 views
-1

J'ai une requête de mise à jour MySql légèrement importante que je voudrais exécuter sur une table dans ma base de données.Grande (ish) requête de mise à jour Mysql

Le tableau comporte 10 colonnes, mais les plus pertinentes sont les suivantes:

Product_Name, varchar (255), Nullable PRODUCT_CATEGORY, varchar (255), Nullable Product_Tags, varchar (255), Nullable

Exemple:

| Product_Name | Product_Category | Product_Tags | 
|  prod1  |  cath  | prod1 cath | 
|  prod2  |  cate  | prod2 cate | 
|  prod3  |  catk  | prod3 catk | 

Je voudrais UPDATE la colonne Product_Tags avec une concaténation des valeurs de Product_Name et Product_CategoryWHERE les valeurs de la chaîne/varchar à insérer se trouvent dans la colonne Product_Name, comme illustré ci-dessus. J'ai déjà les combinaisons au format .csv, si cela était plus simple.

Quelle serait la syntaxe correcte MySql pour cette requête?

+0

Vous ne devriez pas faire comme ça. Ajoutez plutôt une table 'tags' et une table reliant les produits aux tags. Cela rendra la recherche beaucoup plus facile dans le futur. – jeroen

Répondre

0

Voulez-vous mettre à jour toutes les lignes de la table? Si oui, cette requête:

UPDATE `tablename` SET `Product_Tags` = CONCATENATE(`Product_Name`, ' ', `Product_category`) 

(Mais je ne suis pas sûr de ce que vous voulez atteindre avec la colonne Product_Tags.)

+0

Merci beaucoup, cela a parfaitement fonctionné. La colonne Product_Tags doit être utilisée plus tard pour une requête de recherche, et les balises vont être ajoutées. Je voulais juste le nom initial et la catégorie dans ce domaine à ce stade. Pour votre information, la syntaxe j'était: MISE À JOUR '' Product_Data' SET Product_Tags' = CONCAT ('Product_Name', '',' Product_Catagory') –

0

je partirais avec quelque chose comme:

UPDATE Product_Tags SET Product_Tags = CONCAT_WS(" ", Product_Name, Product_Category); 

Je ne suis pas sûr de comprendre la partie WHERE de la question. Pourriez-vous donner un peu plus de détails sur la façon dont vous décidez quelles lignes cela devrait affecter?

0

Cela devrait vous aider:

https://www.w3schools.com/sql/sql_update.asp

Il serait bon de voir ce que vous avez à ce jour, en substance, vous devez utiliser UPDATE nom_table SET 'Product_Tags s = ....

Je vous recommande de lire le tutoriel ci-dessus mais si vous avez besoin d'apporter des modifications ou d'écrire de nouvelles requêtes, il serait bon d'avoir les connaissances vous-même.

+0

Merci beaucoup, je vais certainement donner une lecture pour obtenir un peu d'une plus grande compréhension sur MySQL. –