June 24

0 comments

Website Cleanup – Delete Drupal Users who have no ubercart orders

By NickLitten

June 24, 2014

delete, drupal, SQL, users, wordpress

Migrating Cousin Rob’s www.DRUMSTHEWORD.com website from his 6 year old Drupal6 website to a new (hopefully sexier) WordPress4 website has meant a lot of data cleansing before golive. Before we get any comments about Drupal vs. WordPress, or a CMS flamewar, the new website was chosen to be on WordPress because of WOOCOMMERCE and a neat WordPress Theme that had already been selected.

So, I’m going to leave a little blog about any particular problems I found, or cool tricks I found, during data migration.

The old drupal website had over 48,000 users defined… many of them spam… many of them dead… many redundant or no longer needed.

So how do we cleanup users?

Using the PHP panel I used this SQL script to select the users that have been registered but who have never ordered anything using Drupal6 Ubercart:

select count(*) from users where mail not in 
(select primary_email from uc_orders) and
 uid <> '0' and
 mail NOT LIKE "%drumstheword.com%" and
 mail NOT LIKE "%projex%"

note: do not touch uid=0 because this is the ANONYMOUS user and do not touch any *@drumstheword.com or *@projex.com users

This will give you a count value showing how many users are selected and if your ready to delete then just use:

delete from users where mail not in
(select primary_email from uc_orders) and
 uid <> '0' and
 mail NOT LIKE "%drumstheword.com%" and
 mail NOT LIKE "%projex%"

*boom*

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Join the IBM i Community for FREE Presentations, Lessons, Hints and Tips

>