【问题标题】:I want to search no of rows containing aphostrophe string我想搜索没有包含撇号字符串的行
【发布时间】:2012-03-16 13:39:09
【问题描述】:

我想在特定字段中搜索不包含“'”撇号字符串的行。我 尝试过

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

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

如何查询它们并提供帮助是肯定的

【问题讨论】:

  • 你为什么要string's而不是'?
  • 单引号表示 sql 字符串,所以在里面加双引号
  • 嘿,我的数据库中有一个条目,比如这个 samad,然后如何搜索这个字符串
  • 呃,等等。你想要没有行?也就是说,您要搜索不包含撇号的行吗?还是您想要 number 行,正如 count(*) 所建议的那样?
  • 基本上我已经使用 mysql_real_escape_string 进行插入,所以值保存在我的数据库中,就像这个 samad\'s Q 是如何使用 like 子句搜索这个字符串

标签: php mysql sql mysqli


【解决方案1】:

试试这个:

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

【讨论】:

  • 我的数据库中有一个类似这个 samad 的条目,然后如何搜索这个字符串 ....
  • where field like 'samad''s' -- 你是这个意思吗?
  • 基本上我已经使用 mysql_real_escape_string 进行插入,所以值保存在我的数据库中,就像这个 samad\'s Q 是如何使用 like 子句搜索这个字符串
  • @Samad,不过,在内部,转义字符串与转义字符一起存储,转义字符不会在结果中返回。你不必逃避。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

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

    如果您需要包括 unicode 支持,请向我们展示表格的结构,以便我们知道我们正在处理什么。

    mysqldump -d dbname tablename
    

    (当然,我们不需要来自mysqldump 输出的 cmets。)

    【讨论】:

      【解决方案4】:

      试试:

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

      【讨论】:

      【解决方案5】:

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

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

      一旦你完成它,你就可以找到一个微不足道的撇号

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

      查询。

      【讨论】:

        【解决方案6】:

        这里是用like子句检查数据库中这个字符串samad/'s的解决方案

        <?php 
        $search = mysql_real_escape_string(addslashes(addslashes($search)));
        ?>
        
        select * from table where field like '".$search."'
        

        感谢大家与我分享你的答案

        【讨论】:

          【解决方案7】:

          就用这个...它会帮助你

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

          【讨论】:

          • 基本上我已经使用 mysql_real_escape_string 进行插入,所以保存在我的数据库中的值就像这个 samad\'s Q 是如何使用 like 子句搜索这个字符串
          • @Samad - 你的问题是rows containing "'" aphostrophe string。字符串是一个或多个字符。撇号既是一个字符,也是一个单字符串。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-06-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-02-18
          • 1970-01-01
          相关资源
          最近更新 更多