I need to modify the following code to delete everything with the value 1xxxxxxxx and 3xxxxxxxx (so, 100000001, 100000002, etc) but my knowledge of SQL isn’t perfect. Is there anybody who can help me with modifying this script?
SET @increment_id = '100000001';
SELECT *
FROM `sales_flat_quote_address_item`
WHERE `sales_flat_quote_address_item`.`quote_address_id` IN (
SELECT `address_id`
FROM `sales_flat_quote_address`
WHERE `sales_flat_quote_address`.`quote_id` IN (
SELECT `entity_id`
FROM `sales_flat_quote`
WHERE `sales_flat_quote`.`reserved_order_id` = @increment_id
)
);
DELETE
FROM `sales_flat_quote_shipping_rate`
WHERE `sales_flat_quote_shipping_rate`.`address_id` IN (
SELECT `address_id`
FROM `sales_flat_quote_address`
WHERE `sales_flat_quote_address`.`quote_id` IN (
SELECT `entity_id`
FROM `sales_flat_quote`
WHERE `sales_flat_quote`.`reserved_order_id` = @increment_id
)
);
DELETE
FROM `sales_flat_quote_address`
WHERE `sales_flat_quote_address`.`quote_id` IN (
SELECT `entity_id`
FROM `sales_flat_quote`
WHERE `sales_flat_quote`.`reserved_order_id` = @increment_id
);
DELETE FROM `sales_flat_quote_item_option`
WHERE `sales_flat_quote_item_option`.`item_id` IN (
SELECT `item_id`
FROM `sales_flat_quote_item`
WHERE `sales_flat_quote_item`.`quote_id` IN (
SELECT `entity_id`
FROM `sales_flat_quote`
WHERE `sales_flat_quote`.`reserved_order_id` = @increment_id
)
);
DELETE FROM `sales_flat_quote_item`
WHERE `sales_flat_quote_item`.`quote_id` IN (
SELECT `entity_id`
FROM `sales_flat_quote`
WHERE `sales_flat_quote`.`reserved_order_id` = @increment_id
);
DELETE FROM `sales_flat_quote_payment`
WHERE `sales_flat_quote_payment`.`quote_id` IN (
SELECT `entity_id`
FROM `sales_flat_quote`
WHERE `sales_flat_quote`.`reserved_order_id` = @increment_id
);
DELETE FROM `sales_flat_quote`
WHERE `sales_flat_quote`.`reserved_order_id` = @increment_id;
DELETE FROM `sales_order_datetime`
WHERE `sales_order_datetime`.`entity_id` IN (
SELECT `entity_id`
FROM `sales_order`
WHERE `sales_order`.`increment_id` = @increment_id
);
DELETE FROM `sales_order_decimal`
WHERE `sales_order_decimal`.`entity_id` IN (
SELECT `entity_id`
FROM `sales_order`
WHERE `sales_order`.`increment_id` = @increment_id
);
DELETE FROM `sales_order_int`
WHERE `sales_order_int`.`entity_id` IN (
SELECT `entity_id`
FROM `sales_order`
WHERE `sales_order`.`increment_id` = @increment_id
);
DELETE FROM `sales_order_text`
WHERE `sales_order_text`.`entity_id` IN (
SELECT `entity_id`
FROM `sales_order`
WHERE `sales_order`.`increment_id` = @increment_id
);
DELETE FROM `sales_order_varchar`
WHERE `sales_order_varchar`.`entity_id` IN (
SELECT `entity_id`
FROM `sales_order`
WHERE `sales_order`.`increment_id` = @increment_id
);
DELETE FROM `sales_order_entity_datetime`
WHERE `sales_order_entity_datetime`.`entity_id` IN (
SELECT `entity_id`
FROM `sales_order_entity`
WHERE `sales_order_entity`.`increment_id` = @increment_id
);
DELETE FROM `sales_order_entity_decimal`
WHERE `sales_order_entity_decimal`.`entity_id` IN (
SELECT `entity_id`
FROM `sales_order_entity`
WHERE `sales_order_entity`.`increment_id` = @increment_id
);
DELETE FROM `sales_order_entity_int`
WHERE `sales_order_entity_int`.`entity_id` IN (
SELECT `entity_id`
FROM `sales_order_entity`
WHERE `sales_order_entity`.`increment_id` = @increment_id
);
DELETE FROM `sales_order_entity_text`
WHERE `sales_order_entity_text`.`entity_id` IN (
SELECT `entity_id`
FROM `sales_order_entity`
WHERE `sales_order_entity`.`increment_id` = @increment_id
);
DELETE FROM `sales_order_entity_varchar`
WHERE `sales_order_entity_varchar`.`entity_id` IN (
SELECT `entity_id`
FROM `sales_order_entity`
WHERE `sales_order_entity`.`increment_id` = @increment_id
);
DELETE FROM `sales_order_entity`
WHERE `sales_order_entity`.`increment_id` = @increment_id;
DELETE FROM `sales_order`
WHERE `sales_order`.`increment_id` = @increment_id;
You can use the following script to delete all records start with 1 or 3: