Greetings,
 
Read the manuals, please:
http://dev.mysql.com/doc/refman/5.5/en/update.html
http://dev.mysql.com/doc/refman/5.5/en/join.html
(you could look at 5.6 or 5.1 too accordingly)
 
mysql> select count(*) from biblio;
+----------+
| count(*) |
+----------+
|    38497 |
+----------+
1 row in set (0.00 sec)
 
mysql> select count(*) from biblio where author is NULL;
+----------+
| count(*) |
+----------+
|     8967 |
+----------+
1 row in set (0.00 sec)
 
mysql> select biblio.author,ExtractValue(marcxml,'//datafield[@tag="100"]/subfield[@code>="a"]') from biblioitems left join biblio on biblio.biblionumber=biblioitems.biblionumber where biblio.author is NULL;
+--------+----------------------------------------------------------------------+
| author | ExtractValue(marcxml,'//datafield[@tag="100"]/subfield[@code>="a"]') |
+--------+----------------------------------------------------------------------+
| NULL   |                                                                      |
| NULL   |                                                                      |
...
| NULL   |                                                                      |
| NULL   |                                                                      |
+--------+----------------------------------------------------------------------+
8967 rows in set (0.89 sec)
 
mysql> update biblio right join biblioitems on biblio.biblionumber=biblioitems.biblionumber SET biblio.author=ExtractValue(biblioitems.marcxml,'//datafield[@tag="100"]/subfield[@code>="a"]') where biblio.author is NULL;
Query OK, 8967 rows affected (1.68 sec)
Rows matched: 8967  Changed: 8967  Warnings: 0
 
mysql> select count(*) from biblio where author is NULL;
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)
 
Granted, they are all blank still, because all my records had nothing in the 100$a column for those records.
 
I don’t know if that will or will not affect any logic in Koha, as NULL!=space(s). Though you could go back and replace with NULL for things with no printable characters in it, I’m sure.
 
GPML,
Mark Tompsett