Note the following data:
MariaDB [pallets3]> select options, title from menus where options != ''; +-------------------------------------------------------------------+------------------------------------------------+ | options | title | +-------------------------------------------------------------------+------------------------------------------------+ | array('title'=> "Print 150x200 Oil Pallet Labels") | Print 150x200 Oil Pallet Labels | | array('title'=> "Print 150x200 Marg Pallet Labels") | Print 150x200 Marg Pallet Labels | | array('title' => "View/Edit Shipments and Print Shippers") | View/Edit Shipments and Print Shippers | | array('title' => "Track a pallet") | Track a pallet | | array('title' => 'View & change configuration settings') | | | array('title' => "View or Edit pack or tub size") | View or Edit pack or tub size | | array('title' => "Click to edit standard run rates") | Click to edit standard run rates | | array('title'=> "modify reason codes") | modify reason codes | | array('title' => "Click for help and about") | Click for help and about | | array('title'=> "Downtime Reports") | Downtime Reports | | array('title'=> "View Cost Centres") | View Cost Centres | | array('title'=> "Add Cost Centre") | Add Cost Centre | | array('title'=> "Production and Downtime Settings") | Production and Downtime Settings | | array('title'=> "Print 100x50 80% 10KG Labels") | Print 100x50 80% 10KG Labels | | array('title'=> "Select Reports") | Select Reports | | array('title'=>"Pentaho Reports Server") | Pentaho Reports Server | | array('title'=> "Print 100x50 Labels for Samples") | Print 100x50 Labels for Samples | | array('title'=> "Pallet Labels") | Pallet Labels | | array('title'=> "Shipping Labels") | Shipping Labels | | array('title'=> "Print 100x50 Carton Labels") | Print 100x50 Carton Labels | | array('title'=> "Print custom labels - for short or sample runs") | Print custom labels - for short or sample runs | | array('title'=> "Item Data etc"); | Item Data etc | | array('title'=>"Day of Year Number Calculator") | Day of Year Number Calculator | | array('title' => "View Pack Sizes") | View Pack Sizes | +-------------------------------------------------------------------+------------------------------------------------+ 24 rows in set (0.00 sec)
As you can see I was doing something really dodgy to run a menu system entering a PHP array into a database field and then converting that to a CakePHP options array...
I wanted to make it a bit safer and so I need to select the values between the double quotes and then transfer them across to a new column.
Here is the SQL:
UPDATE menus as t1 INNER JOIN ( SELECT id, SUBSTRING( options, LOCATE ('\"', options) + 1, LOCATE('\"', options , (LOCATE ('\"', options) + 1)) - LOCATE ('\"', options) -1 ) as opt FROM menus ) AS t2 SET t1.title = t2.opt WHERE t1.options != '' AND t1.id = t2.id;
0 Comments