SQL查询IN子句:如何在传递列表时转义特殊字符

时间:2019-02-02 20:48:23

标签: mysql mongodb studio3t

在该杂志的名字'() -

我传递期刊列表,其中包含特殊字符,如&,查询。这是我的查询内容:

select alt_id, citation.doi, citation.journal, citation.volume, 
citation.issue,  citation.pubdate, citation.title
from ALT_2018
where citation.journal in ('Mechanics & Astronomy', 'Women's Health', 'Current 
Directions in Psychological Science (Sage Publications Inc.)', 'Cement & 
Concrete Composites', 'Journal of Heart & Lung Transplantation', 'Infection control 
and hospital epidemiology (Online)', 'Journal of Research on Adolescence 
(Blackwell Publishing Limited)', 'Ophthalmic & Physiological Optics', 'Brain 
Structure & Function', 'New Solutions: A Journal of Environmental & 
Occupational Health Policy', 'European Physical Journal B -- Condensed 
Matter')

我尝试使用反斜杠来转义特殊字符,但它不起作用,并且由于列表包含2000多种期刊,所以我也无法手动进行。请帮帮我。

P.S。我使用SQL查询扩展在Studio3T作为数据被保存在MongoDB中和是JSON格式

1 个答案:

答案 0 :(得分:0)

您可以在此处了解有关MySQL字符串文字中的特殊字符的信息:https://dev.mysql.com/doc/refman/8.0/en/string-literals.html

如果需要使用撇号字符,则可以通过以下方式之一进行:

'Women\'s Health'
'Women''s Health'
"Women's Health" -- only if sql_mode is not ANSI or ANSI_QUOTES

这些是选项。我不知道您的意思是“它没有用”,所以我不建议如何解决它。我不使用Studio3T,所以我无法猜测是什么导致您无法使用这些解决方案之一。

MySQL字符串文字中的&字符没有什么特别的。