【问题标题】:Searching in database for entire string / phrase在数据库中搜索整个字符串/短语
【发布时间】:2015-08-30 10:30:43
【问题描述】:

我有一个表单,其中有两个单选按钮

一个应该搜索整个字符串第二个应该从字符串中搜索至少一个单词

例如:

我将搜索“很棒的创业点子”。

如果我选中“搜索整个字符串/短语”,它必须包含我输入的内容。

  • 我想返回类似“那里有很多很棒的创业想法”。
  • 或“令人惊叹的创业创意”。

如果我选中“搜索包含的所有单词”。

  • 我想返回类似“这个初创公司太棒了”的内容。

我提交表单或类似的东西没有问题,但是 SQL 查询会返回我上面提到的结果。

if ($_POST['selectedRadio'] == 'entireString') { 
   $query = '/* QUERY HERE */';
} elseif($_POST['selectedRadio'] == 'containedWords') {
   $query = '/* QUERY HERE */';
}

是否有任何有效且快速的方法来获得这些期望的结果?

谢谢。

【问题讨论】:

  • 搜索整个数据库元数据?还是真实的表格数据?
  • 真实表数据,不过我已经解决了。无论如何感谢您的发布。

标签: php mysql sql search


【解决方案1】:
SELECT * FROM table_name WHERE column_name LIKE %your_string%

此代码将在表中准确搜索您要查找的字符串或短语。 Google for sql 之类的命令并构建您需要的查询。

【讨论】:

  • 我需要将全文搜索和字符串中的完全匹配分开。我已经解决了,但感谢您的帮助。 :)
【解决方案2】:

已经解决了这个问题。

“这家初创公司太棒了”。 - 设法通过全文搜索返回此内容。

“那里有很多很棒的创业点子”。 - 设法用 LIKE 条件返回这个。

感谢大家的帮助。

【讨论】:

    【解决方案3】:

    您可以使用 (.isSpace) 来定位分隔每个单词的空白,这不是确切的答案,但您可以从这种方式开始研究。

    【讨论】:

      【解决方案4】:
      String str = "your string";
      String[] separator = str.split(" ");//this will split string with space " "
      String firstword = separator  [0]; // "your"
      String secondword = separator [1]; // "string"
      

      无论你在 string.split 中放入什么,都将用作分隔符、分割器

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-29
        • 1970-01-01
        • 2011-08-19
        相关资源
        最近更新 更多