MySQL选择具有特殊字符的字符串

MySQL选择具有特殊字符的字符串,mysql,special-characters,Mysql,Special Characters,我在从数据库中选择字符串时遇到问题。问题是,如果您的行中有mcdonalds,并且如果您使用字符串mcdonalds进行搜索,则不会找到任何结果。有什么建议吗 我忘了提到我在WHERE句子中使用了LIKE。我相信您正在寻找LIKE操作符: 编辑: 我尝试了很多不同的方法,我唯一的建议是使用任何发送查询的代码,首先将“\”转义添加到适当的字符中。PHP在这方面做得很好: …但这只是猜测情况的完整上下文。如果您的搜索要求忽略某些字符,您可以在搜索过程中删除它们,方法是将它们替换为空白 这个答案解

我在从数据库中选择字符串时遇到问题。问题是,如果您的行中有
mcdonalds
,并且如果您使用字符串
mcdonalds
进行搜索,则不会找到任何结果。有什么建议吗


我忘了提到我在
WHERE
句子中使用了
LIKE

我相信您正在寻找LIKE操作符:

编辑:

我尝试了很多不同的方法,我唯一的建议是使用任何发送查询的代码,首先将“\”转义添加到适当的字符中。PHP在这方面做得很好:


…但这只是猜测情况的完整上下文。

如果您的搜索要求忽略某些字符,您可以在搜索过程中删除它们,方法是将它们替换为空白

这个答案解决了您的问题:

SELECT *
FROM restaurants
WHERE replace(name, '''', '') like '%mcdonalds%'; -- This will match "McDonald's"

FYI,单引号文字(<代码> <代码>)被写为加倍单引号(<代码>”/代码>,因此,指定一个引号作为参数“<代码>替换/代码> >您需要一行四个引号(<代码>”'/COD> >两个两端,中间引号加倍。p> 搜索正确的术语。如果你搜索“乔”,你不会找到“简”,那么为什么会有惊喜呢?(还有,你真的不应该连续吃太多麦当劳。)你是怎么搜索的?直接相等使用

行='mcdonalds'
?我现在使用的是LIKE,但并不像您看到的那样有效。像“%$string%”行我想像“mcdonald%”这样的
行对你来说是不合适的?想象一下用mcdonalds字符串搜索mcdonald's吧。我不明白下面的投票结果。OP没有说明他/她已经在使用like。使用upvote进行补偿。这不是输入的问题,而是关于mysql函数的问题。类似于TRIM函数,但不是删除空格,而是删除一些特殊字符('))