J'ai un projet de mise à jour du magasin Magento priselist. J'ai une liste d'éléments que je veux mettre à jour et je veux le faire avec une requête MySQL (en pensant que c'est plus efficace). Le priselist incluent sku et le prix.Mise à jour du projet C# Liste des lignes MySQL sélectionnées à partir de deux tables
J'ai deux tables. De tableau 1 J'utilise sku mise à jour dans tableau 2 la valeur, qui est le prix de l'article quand * entity_id * sont égaux dans les deux tables et attribute_id est '64'.
Tableau 1
product_entity
entity_id | sku
1 | p1
2 | p2
3 | p3
Tableau 2
product_entity_decimal
entity_id | attribute_id | value |
1 | 64 | 5 |
1 | 65 | NULL |
1 | 66 | NULL |
2 | 64 | 7 |
2 | 65 | NULL |
2 | 66 | NULL |
3 | 64 | 1 |
3 | 65 | NULL |
3 | 66 | NULL |
Alors, comment puis-je mettre à jour avec un prix de requête p1 être 6 et prix p3 être 2.
J'essaie cette requête mais cela n'a pas fonctionné ...
UPDATE product_entity, product_entity_decimal SET product_entity_decimal.value =
CASE
WHEN product_entity.entity_id = product_entity_decimal.entity_id AND product_entity_decimal.attribute_id = '64' AND product_entity.sku = 'p1' THEN '6'
WHEN product_entity.entity_id = product_entity_decimal.entity_id AND product_entity_decimal.attribute_id = '64' AND product_entity.sku = 'p1' THEN '2'
ELSE value
END
Pour mon projet, j'utilise C# avec .Net et MySQL 5.x en utilisant MySql.Data.MySqlClient. Peut-être qu'il y a une meilleure façon de mettre à jour la liste de 3000 éléments dans la base de données MySQL s'il y a partage s'il vous plaît. :)
Merci, c'était utile, mais j'ai une question. Ne nécessite-t-il pas plus de ressources côté serveur pour exécuter plusieurs requêtes SQL que celle que j'essayais? Le but de mon projet est d'alléger le côté hôte. Je suis arrivé à une autre base d'idée sur "memory = 1/calcul"; Cela signifie que sur les données d'exportation, je garderai entity_id et que ce sera simple mise à jour dans une table, mais encore une requête ou plusieurs, je pense toujours qu'une requête est meilleure que beaucoup. –