MySQL里怎么做同音字搜索

MySQL里怎么做同音字搜索,第1张

低效率的实现方法一:我看到过有个网站源码是这样做的,它通过“Select * From……”把整个表取出,然后逐条循环tmp=rs("A")&getpy(rs("A"))&rs("B")&getpy(rs("B"))&rs("C")&getpy(rs("C")),然后对比tmp里是否含有request("key"),其中getpy()是它自定义的一个很长的函数。这样的做法虽然能实现,但是效率也太低了,不仅要把整个数据库全部搬下来,还要对每个字都进行getpy()才能得到结果。

低效率的实现方法二:对数据库每个字段都增加一个对应的拼音字段,也就是数据结构变成Title、TitlePy、Author、AuthorPy、Content、ContentPy,然后修改Select语句查询它们,但是这样在每次更新数据库时都要维护一次对应的拼音字段,效率仍然低下,并且还使数据库体积成倍增大,仅仅为了一个拼音搜索功能,不值。

<select

id="getPY"

parameterType="String"

resultType="String"

>

select

getPY('中国')

from

dual

</select>

FUNCTION

`getPY`(in_string

VARCHAR(65534))

--

mysql函数

Mapper文件,如下: select getPY('中国') from dual FUNCTION `getPY`(in_string VARCHAR(65534)) -- mysql函数


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7459067.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存