【问题标题】:php mysql Query result with %Like% [duplicate]php mysql查询结果与%Like%[重复]
【发布时间】:2019-03-21 16:49:34
【问题描述】:

我被查询结果卡住了,需要帮助。

我的示例专栏 How are you what is your name where are you from whats the age of the youth

现在这是我在表格中的列,我在下面查询

  $search='you';
  $s=mysqli_query($con,"Select * from tblxyz where column1 is LIKE '%{$key}%'");

我得到了所有 4 行的结果,因为总共有“you”,但我想得到 SQL 搜索的确切单词的结果,所以第 4 行的结果是“youth” .如何获取 SQL 根据我的查询找到的单词。

提前致谢

【问题讨论】:

  • 如果您需要,只需在您搜索的字符串之后应用:'{$key}%' 这样您就可以搜索以 YOU 开头的字符串以及之后的所有其他字符。跨度>
  • 不,这不是我想要的。谢谢
  • 移除 is 并移除大括号

标签: php mysql sql sql-like


【解决方案1】:

试试这个查询。

  $search='you';
     $sql=" SELECT * FROM tblxyz WHERE column1 like '%".$search."%'";

【讨论】:

  • 谢谢哥们,但这也给了我整列的结果,但我只需要它匹配的结果。谢谢
  • 而不是 WHERE column1 like '%".$search."%' 使用 WHERE column 1=$search
  • 虽然您的代码可能作为答案正确,但详细说明您的代码的作用,它可以提高您的答案的质量。查看文章:How do I write a good answer?
【解决方案2】:

要获得确切的单词,请不要使用%

$search='you';
$s=mysqli_query($con,"Select * from tblxyz where column1 is LIKE '{$search}'");

【讨论】:

  • 感谢您的快速回复,但我的问题略有不同。通过上面的查询,我得到了整个列的结果(全部 4 个),但我需要的结果是 1. you, 2. you, 3. you and 4. Youth,这就是我要找的,谢谢提前
  • 所以你想要字符串中包含单词 you 的列的结果。前面和后面是否有任何字母都没有关系。因此,如果存在“青春”一词,它应该在结果中显示出来。
  • 好的,所以现在结果显示了所有 4 行,我得到的结果是 1)你好吗,2)你的名字是什么,3)你来自哪里和 4)是什么青年的年龄。我得到了所有 4 这很好,但我希望结果是 1)你,2)你的,3)你,4)青春。只有这几个字。谢谢
【解决方案3】:

假设您正在查找单词you,并且您只想选择包含单词you. 的数据,在这种情况下,您可能希望使用REGEXP

"SELECT * FROM table WHERE tname RLIKE "[[:<:]]you[[:>:]]"

以上可用于精确词匹配。

【讨论】:

    猜你喜欢
    • 2010-12-19
    • 2011-10-18
    • 1970-01-01
    • 2017-05-24
    • 2019-10-21
    • 2010-11-12
    • 2020-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多