繁体   English   中英

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

[英]MySQL selecting string with special characters

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

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

如果您的搜索要求是忽略某些字符,您可以在搜索期间通过将它们replace为空白来删除它们。

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

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

仅供参考,单引号文字( ' )写为双引号( '' ),因此要将单引号指定为replace参数,您需要连续四个引号( '''' ) - 每端两个中间的双引号表示实际报价。

转义你的特殊字符。

SELECT *
FROM restaurants
WHERE name='McDonald\'s';

我相信您正在寻找 LIKE 运算符:

http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html

编辑:

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

http://www.php.net/manual/en/function.mysql-real-escape-string.php

……但这只是对整个情况的猜测。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM