MySQL在具有特殊字符的集合函数中查找集合不起作用

MySQL在具有特殊字符的集合函数中查找集合不起作用,mysql,sql,mariadb,find-in-set,mariasql,Mysql,Sql,Mariadb,Find In Set,Mariasql,我有一个存储过程: CREATE PROCEDURE MyDB.`tag_quicktrend`( IN taglist TEXT ) BEGIN SELECT * FROM taginfo WHERE FIND_IN_SET(tagname,taglist); END; 当我呼叫SP时: 调用sp\u图表\u波段\u标签\u快速趋势('YH05_한글')返回正确的标记。 调用sp\u图表\u波段\u标签\u快速趋势('YH05_한글,~!@#$%^&*()(+

我有一个存储过程:

CREATE PROCEDURE MyDB.`tag_quicktrend`(
    IN taglist TEXT
)
BEGIN
    SELECT *
    FROM taginfo
    WHERE FIND_IN_SET(tagname,taglist);
END;
当我呼叫SP时:
调用sp\u图表\u波段\u标签\u快速趋势('YH05_한글')返回正确的标记。

调用sp\u图表\u波段\u标签\u快速趋势('YH05_한글,~!@#$%^&*()(+)}{:?>最后我发现了问题,因为我设置了这个模式

SET @@SQL_MODE = CONCAT(@@SQL_MODE, ',NO_BACKSLASH_ESCAPES');
此相等(=)查询返回空

select * from taginfo where tagname = '~!@#$%^&*()_+|}{":?><./'';[]\\=-`'

它返回带有标记名=~!@$%^&*(\u+\ 124;}{)的行:“>我使用mysql,我也标记mssql来帮助它没有帮助-这是一种完全不同的技术请提供一个工作测试用例。为什么要禁用此设置?为什么不将所有的``替换为`\`?是的,我们可以使用\\而不是设置否`反斜杠`转义模式
select * from taginfo where tagname = '~!@#$%^&*()_+|}{":?><./'';[]\\=-`'
select * from taginfo where tagname = '~!@#$%^&*()_+|}{":?><./'';[]\\=-`'