A simple solution that should work almost universally is
\AtEveryBibitem{%
\iffieldundef{doi}
{\iffieldundef{issn}
{}
{\clearfield{isbn}}}
{\clearfield{issn}%
\clearfield{isbn}}%
}
For the standard styles the shorter
\AtEveryBibitem{%
\iffieldundef{doi}
{}
{\clearfield{issn}%
\clearfield{isbn}}%
}
should be enough since no entry shows both ISBN and ISSN - it is either or.
You can do the same thing with Biber's sourcemapping which stops the data from even reaching biblatex
(this is usually preferred with data that could be used for things other than being printed directly - for example dates and names that could be used for sorting or label...
fields).
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldsource=doi, final]
\step[fieldset=isbn, null]
\step[fieldset=issn, null]
}
}
}
biblatex
style are you using? Can you show us an MWE/MWEB of how you produce your bibliography at the moment so we can get started more quickly, please? Your question is reasonably clear even without an MWE, but it would greatly help us to see what you are doing at the moment to get started more quickly, make sure we all talk about the same thing and test our solution. An MWE is a good way to show that you care about those who want to help you.