mysql 针对通配符的查询

发布于 2024-08-22 17:52:56 字数 199 浏览 5 评论 0原文

我在 php 中有一个 mysql 查询,使用 match / against 来过滤结果。我试图在 $string 之后获取通配符,以便下一个字符可以是任何内容。帮助?

"SELECT * FROM $table WHERE MATCH (message) AGAINST('$string%' IN BOOLEAN MODE)"

I have a mysql query in php, using match / against to filter results. Im trying to get a wildcard after $string so the next character can be anything. Help?

"SELECT * FROM $table WHERE MATCH (message) AGAINST('$string%' IN BOOLEAN MODE)"

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

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

发布评论

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

评论(2

高速公鹿 2024-08-29 17:52:56

使用 MATCH (...) AGAINST (...) 时,使用 * 而不是 % 作为通配符:

"SELECT * FROM $table WHERE MATCH (message) AGAINST('$string*' IN BOOLEAN MODE)"

Use * instead of % as a wildcard when using MATCH (...) AGAINST (...):

"SELECT * FROM $table WHERE MATCH (message) AGAINST('$string*' IN BOOLEAN MODE)"
入画浅相思 2024-08-29 17:52:56

不要将变量嵌入到双引号字符串中,这样就完成了:

"SELECT * FROM " . $table . " WHERE MATCH (message) AGAINST ('" . $string . "%' IN BOOLEAN MODE)"

话虽如此,我无法确认这是有效的 SQL。但至少它会确保你的变量被正确扩展,如果它不起作用,那也不是因为 PHP 的原因。

为了以防万一这个提醒有用,千万不要忘记转义进入查询的数据

Don't embed variables into double-quoted strings and you're set:

"SELECT * FROM " . $table . " WHERE MATCH (message) AGAINST ('" . $string . "%' IN BOOLEAN MODE)"

That being said, I can't confirm this is valid SQL. But at least it'll ensure your variable is expanded properly and if it doesn't work then it won't be because of PHP.

And just in case this reminder will be useful, nevar forget to escape data that goes into a query.

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