SELECT arks.*
FROM `dsu_ark`
AS arks
JOIN (
SELECT bound.id,
COALESCE(redirected._value, 0)
AS _value
FROM (
SELECT DISTINCT REGEXP_SUBSTR(_key, '^([^\\s]+)') AS id
FROM `dsu_ark`
WHERE _key LIKE '61220/utsc%' AND _key NOT REGEXP '(\\s:\/c|\\sREDIRECT|\\sPID|\\sLOCAL_ID|\\sCOLLECTION)$' AND (_key LIKE '%%' OR _value LIKE '%%')
) AS bound
LEFT JOIN (
SELECT REGEXP_SUBSTR(_key, '^([^\\s]+)') AS id, _value
FROM `dsu_ark`
WHERE _key LIKE '61220/utsc%' AND _key REGEXP '\\sREDIRECT$'
) AS redirected ON bound.id = redirected.id
ORDER BY _value ASC
LIMIT 10
OFFSET 0
) AS subquery
ON arks._key LIKE CONCAT(subquery.id, '%')
AND arks._key NOT LIKE '%:\/c'
ORDER BY arks._key ASC;
SELECT arks.*
FROM `dsu_ark`
AS arks
JOIN (
SELECT * FROM (
SELECT DISTINCT REGEXP_SUBSTR(_key, '^([^\\s]+)') AS id
FROM `dsu_ark`
WHERE _key LIKE '61220/utsc%' AND _key NOT REGEXP '(\\s:\/c|\\sREDIRECT|\\sPID|\\sLOCAL_ID|\\sCOLLECTION)$'
INTERSECT
SELECT DISTINCT REGEXP_SUBSTR(_key, '^([^\\s]+)') AS id
FROM `dsu_ark`
WHERE _key LIKE '61220/utsc%' AND _key NOT REGEXP '\\s:\/c' AND (_key LIKE '%%' OR _value LIKE '%%')
) AS target
ORDER BY id ASC
LIMIT 10
OFFSET 0
) AS subquery
ON arks._key LIKE CONCAT(subquery.id, '%')
AND arks._key NOT LIKE '%:\/c'
ORDER BY arks._key ASC;
About
How to reproduce
LIMIT 10which is querying 10 at a time, but it's take at least 15 secs to load which is quite slow for just 10 items.Goals
Stretch Goals
Related tickets