Прокачался тут в MySQL

Пришлось ковырять перенос из Volusion в Drupal. Переносил через 1С, как это ни странно.

Так вот, узнал много новых SQL-конструкций, о которых раньше не знал.

Например INSERT с обработкой ошибок (и это я еще не знал про INSERT IGNORE):

INSERT INTO file_usage (id, fid, module, TYPE, COUNT)
SELECT entity_id, uc_product_image_fid, 'file', 'node', 1
FROM field_data_uc_product_image
ON DUPLICATE KEY UPDATE COUNT = 1

Или удаление через запрос с JOIN:

DELETE taxonomy_index  FROM taxonomy_index;
INSERT INTO taxonomy_index  (nid, tid)
SELECT entity_id, field_category_tid
FROM field_data_field_category;
INSERT INTO taxonomy_index  (nid, tid)
SELECT entity_id, field_brend_tid
FROM field_data_field_brend

UPDATE с запросом через JOIN:

 
UPDATE 
taxonomy_term_hierarchy
LEFT JOIN
taxonomy_term_data
ON 
taxonomy_term_hierarchy.tid = taxonomy_term_data.tid
LEFT JOIN
field_data_field_taxonomy_volusionid
ON 
field_data_field_taxonomy_volusionid.entity_id = taxonomy_term_data.tid 
SET taxonomy_term_data.vid = 6, taxonomy_term_hierarchy.parent = 0
WHERE VID = 5 AND parent = 838

Как говорится, век живи, век учись!

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *