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

Luk*_*uka 2 mysql special-characters

我在从数据库中选择字符串时遇到问题.问题是如果你有McDonald's一行,如果你正在搜索一个字符串mcdonalds,它将找不到任何结果.有什么建议?

我忘了提,我使用LIKEWHERE句子.

Boh*_*ian 6

如果您的搜索要求是忽略某些字符,则可以在搜索过程中replace使用空白删除它们.

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

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

仅供参考,单引号literal(')被写为doubled单引号(''),因此要将单引号指定为参数,replace需要在一行中使用四个引号('''') - 每端两个,中间为double引号实际报价.