数据库TEXT字段,要匹配几百个地名,返回这个字段中所有匹配的地名字符串
时间: 2020-08-19来源:博客园
前景提要
数据库TEXT字段,要匹配几百个地名,返回这个字段中所有匹配的地名字符串
0 悬赏园豆: 20 [待解决问题] 数据库TEXT字段,要匹配几百个地名,返回这个字段中所有匹配的地名字符串
比如:
TEXT
上海,北京,深圳,广州
长沙,深圳
深圳
匹配字符串:上海,深圳
返回的TEXT:
上海,深圳
深圳
深圳 返回所有匹配上的字符串 Willy_Jiang | 初学一级 | 园豆: 4
提问于:2020-08-19 17:49 显示帮助
使用"Ctrl+Enter"可进行快捷提交,评论支持部分 Markdown 语法:[link](http://example.com) _italic_ **bold** `code`。
< > 分享
分享您的问题
所有回答(4) 0 应该把:上海,深圳拆分为上海 深圳单独去匹配 通信的搞程序 | 园豆:1166 (小虾三级) | 2020-08-19 20:05 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 写个 函数吧。函数里完成,拆分 匹配 flyfishing | 园豆:397 (菜鸟二级) | 2020-08-20 09:11 举个例子呢 支持( 0 ) 反对( 0 ) Willy_Jiang | 园豆:4 (初学一级) | 2020-08-20 10:15 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 两种方式吧,第一种先查询包含了指定地名的数据,find_in_set,匹配到了,再自己去匹配取出需要的数据,第二种直接查出mysql里的全部数据,再去匹配每行里的字段 风行天下12 | 园豆:3329 (老鸟四级) | 2020-08-20 09:34 find_in_set一次只能匹配一个字符串吧,匹配几百个地名,写几百次吗 支持( 0 ) 反对( 0 ) Willy_Jiang | 园豆:4 (初学一级) | 2020-08-20 10:16 @Willy_Jiang: 多个的话要么find_in_set() or find_in_set,或者where CONCAT(",", 字段名 , ",") REGEXP ",(val1|val2|val3)," 支持( 0 ) 反对( 0 ) 风行天下12 | 园豆:3329 (老鸟四级) | 2020-08-20 12:31 @风行天下12: 查出数据容易,问题是我怎么返回TEXT字段里匹配的多个地名 支持( 0 ) 反对( 0 ) Willy_Jiang | 园豆:4 (初学一级) | 2020-08-20 16:15 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 先在代码里面将 上海,深圳,转化成 %上海%,%深圳% 的数组,然后sql里面用 ( TEXT like %上海%) or (TEXT like ,%深圳%),这种方式可以实现,从性能上考虑不推荐这种实现,最好业务系统接入ES搜索,通过ES实现性能会好很多 yangwqonly | 园豆:202 (菜鸟二级) | 2020-08-20 11:05 编辑文本 预览 上传图片
Ctrl+Enter键快速提交
清除回答草稿
您需要 登录 以后才能回答,未注册用户请先 注册 。

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行