【问题标题】:Select (keyword) from table phpmyadmin using LIKE使用 LIKE 从表 phpmyadmin 中选择(关键字)
【发布时间】:2012-05-01 22:12:52
【问题描述】:

接着我的上一个问题:

我现在使用的语句:

    if (isset($_GET['url'])) {
        $url = $_GET['url'];
    }


      SELECT name, url FROM table WHERE species LIKE '%$url%'

species 可以有类似"Brown & Rainbow Trout, Pike" 的内容

但是我说褐鳟的网址是:/fishing/browntrout/

这基本上可以防止上面的语句返回任何结果。

显然它适用于说:/fishing/pike/ 只是不适用于有 2 个名字的鱼。

解决这个问题的最佳方法是什么?

【问题讨论】:

  • 另存为Brown Trout, Rainbow Trout, & Pike?
  • 是的,这可能是一个解决方案,尽管我试图避免这种情况,因为我在页面上显示“物种”的空间不够大,无法容纳很多字符。

标签: php mysql select phpmyadmin sql-like


【解决方案1】:

尝试改用网址/fishing/brown_trout/。然后尝试这样的事情:

if (isset($_GET['url'])) { // "brown_trout"
    $url = str_replace('_', '%', $_GET['url']); // "brown%trout"
}

SELECT name, url FROM table WHERE species LIKE '%$url%'

这将进行查询:

SELECT name, url FROM table WHERE species LIKE '%brown%trout%'

应该可以。

【讨论】:

  • 这似乎可以正常工作,但是,如果 url 是 '/brown/' 而不是 '/brown_trout/',我似乎会得到不同的结果,因为没有其他物种名称中带有 'brown'。显然还有其他“鳟鱼”会引起问题吗?正如我所期望的那样,褐鳟鱼和褐鳟鱼会得到相同的结果
猜你喜欢
  • 2021-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多