关于数据库汉字拼音模糊查找

如来数据 2015-05-14 05:48:47
我在MySQL数据库中定义了一个汉字转拼音的函数(to_pinyin),比如select to_pinyin("测试"),返回结果“ceshi”,现在我想在查询语句中对表“user”进行这样的查询
select `userid` form `user` where to_pinyin(`userid`) like '%%q%%'
`userid`为“user”中的一个字段名,如果表中已有数据“亲人”,“晴天”,“书画”,我想通过上面的查询语句,能查到符合条件的“亲人”,“晴天”,但是我上面的查询语句查询不到,请问上面的语句有什么问题?正确的应该怎么写?
...全文
472 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
如来数据 2015-05-18
  • 打赏
  • 举报
回复
引用 1 楼 yangb0803 的回复:
既然你已经定义了汉字转拼音的函数, 为啥不在录入数据的时候,连拼音一起写到数据库, 或者已经录入了数据,则添加拼音字段,然后维护下数据库? 那样你查询速度要快很多的, 你这么用函数处理, 就算能得到结果, 效率也会低很多啊。
想用函数转换是由于本来数据库已经有数据,而且不想再额外增加字段!
如来数据 2015-05-18
  • 打赏
  • 举报
回复
引用 2 楼 yangb0803 的回复:
select userid form user where to_pinyin(userid) REGEXP ‘^q’;
这语句执行不起来。
道玄希言 2015-05-14
  • 打赏
  • 举报
回复
select userid form user where to_pinyin(userid) REGEXP ‘^q’;
道玄希言 2015-05-14
  • 打赏
  • 举报
回复 1
既然你已经定义了汉字转拼音的函数, 为啥不在录入数据的时候,连拼音一起写到数据库, 或者已经录入了数据,则添加拼音字段,然后维护下数据库? 那样你查询速度要快很多的, 你这么用函数处理, 就算能得到结果, 效率也会低很多啊。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧