首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql搜索varchar列策略

Mysql搜索varchar列策略
EN

Database Administration用户
提问于 2018-06-15 19:15:08
回答 1查看 1.4K关注 0票数 0

我找不到合适的搜索标题的策略。

我有一张放电影的桌子。每部电影都有5-10个不同的名字存储在movie_names (id,name,name_clean,movie_id)表中.

要规范所有名称,我使用脚本转换ascii中的所有名称,删除空格、标点符号等,并将其放在name_clean中。

在搜索时我用

代码语言:javascript
复制
SELECT DISTINCT(movie_id) FROM movie_names WHERE `name_clean` LIKE '%f%' ORDER BY views DESC

然后我使用in并选择带有"where in“的table表。

虽然这个策略有效,但由于我的名字清洗,搜索范围很广。我想改进它没有名字清洁,但不知道我是否可以改进它更好。

例如,我想搜索像'f%',但然后我将需要爆炸每个电影名称的文字。

如果我有电影名“我的大电影名字”,我需要做更多的额外的行:

“我很胖的大电影名字”

“非常胖的电影大名”

“胖大电影名”

“大电影名”

“电影名”

“姓名”

同样在人员表上,我使用查询。

代码语言:javascript
复制
 SELECT * FROM people WHERE `name1` LIKE '%f%' OR name2 LIKE '%f%' ORDER BY views DESC

在搜索电影时,速度是可以的,但速度很宽,选择的结果太多(搜索列是latin_swedish),people表的搜索速度很慢(列是utf8),而且行数更多。

如何在mysql中组织搜索。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2018-07-10 13:26:42

谢谢大家的停顿,特别是粘稠的一点。

这里的解决方案对我有效。

带有id的新表和带有全文的name列。我在布尔模式" query *“中使用匹配进行查询。效果很好。不需要弹性。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/209788

复制
相关文章

相似问题

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