MySql数据库idstr=1,2,34,5,6字符串 “IN”查询 和 行转列查询

原创
04/28 19:26
阅读数 128

当数据库中存储字符串ID时,如:idstr=1,2,34,5,6 查询另外一个表的ID是否在这个字符串idstr中,用in(字段)时是查询不出来数据的,要用INSTR函数去匹配

SELECT GROUP_CONCAT(name) FROM table WHERE INSTR(CONCAT(',',idstr,','),concat(',',id,','))

另外一种字符串行专列方法
数据操作字符串idstr=1,2,34,5,6行时,行转成列,使用到数据库自带的mysql.help_topic表来属性拆分,help_topic表就是实现行转列功能,DISTINCT去除重复的ID

SELECT DISTINCT
    substring_index(substring_index( (idstr), ',',
    help_topic_id + 1 ), ',',- 1 )
    AS tmpId
    FROM
    mysql.help_topic
mysql合并字段显示:
group_cancat(course,”:”,”score”) -> 语文:89,数学:94
group_cancat(course)-> 语文,数学

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部