Unfortunately, that's just the way that ExtractValue works. From the manual:
If multiple matches are found, the content of the first child
text node of each matching element is returned (in the order
matched) as a single, space-delimited string.
Since MARC doesn't give us any means of differentiating between the multiple fields aside from their order, there isn't much that can be done here. And if the desired 610 field isn't the first in the series of them, the LIKE clause won't match; you'd need % in front, as well.
MARC for the fail.. :(
-Ian
Hi Nicole,I did some work with ExtractValue and marcxml a while back and IIRC this has to do with the way ExtractValue returns the data from the xml. I was unable to find a workaround at the time, but perhaps someone else has found one.On Fri, Jul 1, 2011 at 9:33 AM, Nicole Engard <nengard@gmail.com> wrote:Hi all,
I wrote this report to get all subject headings in a Koha system that
start with key phrases:
SELECT lcsh
FROM
(SELECT biblionumber,
ExtractValue(marcxml,'//datafield[@tag="610"]/subfield[@code>="a"]')
AS lcsh FROM biblioitems)
AS subjects
WHERE lcsh
LIKE "College%"
OR lcsh LIKE "Seminary%"
GROUP BY lcsh
What's happening is if there is more than one 610 on a bib record it's
showing them both on one line. I tried using DISTINCT, but that's
didn't do the trick, so I'm up for ideas.
Kind Regards,
Chris
_______________________________________________
Koha mailing list http://koha-community.org
Koha@lists.katipo.co.nz
http://lists.katipo.co.nz/mailman/listinfo/koha