如何在 MySQL 的 instr() 中应用通配符?

发布于 2024-08-15 06:06:55 字数 297 浏览 4 评论 0 原文

使用通配符以便匹配所有记录。

我的代码:

if(empty($tag))
{
$tag="%";
}

mysql_query("select * from mytable where instr(tag,'$tag')>0") or die(mysql_error());

但它返回零结果。 即使

 if(empty($tag))
    {
    $tag="*";
    }

它仍然返回零结果。如何解决这个问题?

Using a wildcard so all records will be matched.

My code:

if(empty($tag))
{
$tag="%";
}

mysql_query("select * from mytable where instr(tag,'$tag')>0") or die(mysql_error());

But it returns zero result.
Even if

 if(empty($tag))
    {
    $tag="*";
    }

It still returns zero result. How to resolve this problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

枕头说它不想醒 2024-08-22 06:06:55

INSTR 不支持通配符。

如果要在 MySQL 查询中使用通配符,则必须使用支持它的函数,例如 LIKEREGEXP,即:

mysql_query("select * from mytable where tag LIKE '%$tag%'")

上述查询适用于 $tag 的任何值。空白值(空字符串)将返回所有记录。确保您也正确清理了您的 $tag 值。

INSTR does not support wildcards.

If you want to use wildcards in a MySQL query, you'll have to use a function that supports it, such as LIKE or REGEXP, ie:

mysql_query("select * from mytable where tag LIKE '%$tag%'")

The above query will work for any value of $tag. A blank value (empty string) will return all records. Be sure you properly sanitize your $tag value as well.

硪扪都還晓 2024-08-22 06:06:55

首先,instr(及其对应的locate)不能识别通配符或任何其他特殊表达式,只能识别文字字符串。处理这个问题的通常方法是相应地修改 SQL:

if (empty($tag))
     $whereclause = "";  // match all records
else $whereclause = "where instr(tag, '$tag') > 0";

mysql_query("select * from mytable $whereclause") or die(mysql_error());

First of all, instr (and its counterpart locate) do not recognize wildcards or any other special expression—only literal strings. The usual way to handle this is to modify the SQL accordingly:

if (empty($tag))
     $whereclause = "";  // match all records
else $whereclause = "where instr(tag, '$tag') > 0";

mysql_query("select * from mytable $whereclause") or die(mysql_error());
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文