首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySql :我能问“$str‘像%table.col%在哪里”吗?

MySql :我能问“$str‘像%table.col%在哪里”吗?
EN

Stack Overflow用户
提问于 2010-07-15 11:58:33
回答 4查看 151关注 0票数 0

--基本上,我想在搜索.时将通配符添加到col值中

通常我是这样做的:

代码语言:javascript
复制
WHERE cakes.cake_name LIKE '%$cake_search%'

然而,现在我想要它与相反的匹配:

用户搜索'treacle sponge',我希望它匹配cake_name列= 'sponge‘的一行。

这个是可能的吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-15 12:03:48

为什么不用火柴?

代码语言:javascript
复制
MATCH(`cake_name`) AGAINST ('treacle sponge')
票数 2
EN

Stack Overflow用户

发布于 2010-07-15 12:00:45

代码语言:javascript
复制
WHERE '$cake_search' LIKE  concat('%',cakes.cake_name, '%')

应该行得通。它将需要一个完整的表扫描,但反向查询也需要。你查过全文搜索 for MySQL吗?它可能会提高这种查询的效率。

票数 3
EN

Stack Overflow用户

发布于 2010-07-15 12:02:52

您必须拆分空间字符上的用户提供的输入,并动态构造查询以检查列中的这些值:

代码语言:javascript
复制
$input = "treacle sponge";
$input_words = explode(' ', $input);

$sql_where = "WHERE cakes.cake_name IN('" . implode("','", $input_words) . "')"; // generates: WHERE cakes.cake_name IN('treacle','sponge')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3255298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档