我想搜索没有包含撇号字符串的行

时间:2012-03-16 13:39:09

标签: php mysql sql mysqli

我想在特定字段中搜索不包含“'”aphostrophe字符串的行。一世 试过

select * from table where field like "%samad's%"

我只得到0个计数。但我确信它存在于许多行中。

如何查询它们和帮助肯定是适用的

7 个答案:

答案 0 :(得分:3)

试试这个:

SELECT * FROM table WHERE field LIKE '%''%'

答案 1 :(得分:1)

尝试:

SELECT * FROM table WHERE field LIKE '%\\''%'

答案 2 :(得分:1)

你必须再次使用相同的方法......我的意思是

<?php    
    $valToSrch = mysql_real_escape_string("'");
    SELECT * FROM table WHERE field LIKE "%$valToSrch%"
?>

答案 3 :(得分:1)

注意:有时,如果人们将文字处理器中的内容剪切并粘贴到表单中,您的单引号撇号实际上可能是right single quotation mark。如果是这种情况,您需要扩展搜索范围,具体取决于该字符的编码方式以包含在数据库中。

其他多个人已发布解决方案,以匹配单个刻度。将*替换为其中任何一个COUNT(*),以获得匹配的“数量”。

如果您需要包含unicode支持,请告诉我们表的结构,以便我们了解我们正在处理的内容。

mysqldump -d dbname tablename

(当然,我们不需要mysqldump输出的评论。)

答案 4 :(得分:0)

  

基本上我已经使用mysql_real_escape_string进行插入,所以保存在我的数据库中的值就像这个samad的

值不会像此samad\'s一样保存在您的数据库中。它保存为samad's
你必须先验证它。
如果它确实包含额外的反斜杠,那意味着你要两次转发数据。 你必须修复你的代码以摆脱这种情况下的双重转义并清理已经在数据库中输入的数据。

一旦你完成它,你将能够找到一个琐碎的撇号

select * from table where field like "%samad\'s%"

查询。

答案 5 :(得分:0)

以下是使用like子句

在数据库中检查此字符串samad/'s的解决方案
<?php 
$search = mysql_real_escape_string(addslashes(addslashes($search)));
?>

select * from table where field like '".$search."'

Thanx让大家与我分享你的答案

答案 6 :(得分:-1)

只需使用它......它会帮助你

SELECT * FROM table WHERE field LIKE "%'%"