diff options
author | Yorhel <git@yorhel.nl> | 2021-01-16 09:45:54 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2021-01-16 09:46:10 +0100 |
commit | 4406605928109f1800582acf886a2b77c46dcea0 (patch) | |
tree | ee27436ffab50812ea61adeee8b9e48faa29a8e5 /lib | |
parent | b82e89d248861bdd5dd4dfd2a793ee94d4a29185 (diff) |
AdvSearch: Add VN subquery to character search
Damn, that was easy.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/VNWeb/AdvSearch.pm | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/VNWeb/AdvSearch.pm b/lib/VNWeb/AdvSearch.pm index 0a0590a8..a47655cd 100644 --- a/lib/VNWeb/AdvSearch.pm +++ b/lib/VNWeb/AdvSearch.pm @@ -417,7 +417,8 @@ f c => 13 => 'trait', { type => 'any', func => \&_validate_trait }, # XXX: When this field is nested inside a VN query, it may match seiyuu linked to other VNs. # This can be trivially fixed by adding an (AND vs.id = v.id) clause, but that results in extremely slow queries that I've no clue how to optimize. -f c => 52 => 'seiyuu', 's', '=' => sub { sql 'c.id IN(SELECT vs.cid FROM vn_seiyuu vs JOIN staff_alias sa ON sa.aid = vs.aid JOIN staff s ON s.id = sa.id WHERE NOT s.hidden AND', $_, ')' }; +f c => 52 => 'seiyuu', 's', '=' => sub { sql 'c.id IN(SELECT vs.cid FROM vn_seiyuu vs JOIN staff_alias sa ON sa.aid = vs.aid JOIN staff s ON s.id = sa.id WHERE NOT s.hidden AND', $_, ')' }; +f c => 53 => 'vn', 'v', '=' => sub { sql 'c.id IN(SELECT cv.id FROM chars_vns cv JOIN vn v ON v.id = cv.vid WHERE NOT v.hidden AND', $_, ')' }; |