Mysql数据库一个表字段中存了id,并以逗号分隔,id对应的详细信息在另一个表中

有两张表,

一张为爱好表b表

一张为用户表 u表

u表

id   名称   爱好Id

1    张三     1,2,3,4

2    李四      2,5

b表

id  名称

1    打乒乓

2    打羽毛球

3   打蓝球

4    上网玩游戏

5   打牌

正常查询u表

select * from u

现在需求是:

id  名称   爱好

1  张三    打乒乓,打羽毛球,打篮球,上网

2 李四    打羽毛球,打牌

修改sql为

select u.id,u.名称,group_concat(b.名称) from u left join b on find_in_set(b.id,u.爱好Id) group by u.id;

 

时间: 2024-10-10 13:01:06

Mysql数据库一个表字段中存了id,并以逗号分隔,id对应的详细信息在另一个表中的相关文章

Python全栈 MySQL 数据库 (表字段增、删、改)

ParisGabriel 每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰  开局一张图 打字 回车时不小心发布了  正在编辑中.............. 原文地址:https://www.cnblogs.com/ParisGabriel/p/9398614.html

VC++ MFC中如何将应用程序的配置信息保存到注册表中(一)

注册表(Registry,繁体中文版Windows称之为登录档)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息.比如我们打开一个记事本,调整其窗口大小,使用完毕后关闭记事本,下次打开时大小和上次关闭前的大小和在屏幕上的位置是相同.这些位置和大小信息就是在记事本关闭时保存到注册表中,下次打开时我们从注册表中取出这些数据,并按照这些数据显示记事本程序的大小和位置信息. 下面教你如何使用GetProfileInt,WriteProfileInt,GetPro

MySQL查询表与表字段的信息

环境: Mysql数据库 库名:db_name 表名: table_name1 table_name2 查询一个里面所有表的信息: use information_scheam; select * from tables where table_schema = "db_name"; 查询单个表的信息: use information_scheam; select * from tables where table_schema = "db_name" and ta

mysql数据库新插入数据,需要立即获取最新插入的id

在MySQL中,使用auto_increment类型的id字段作为表的主键.通常的做法,是通过"select max(id) from tablename"的做法,但是显然这种做法需要考虑并发的情况,需要在事务中对主表以"X锁",待获得max(id)的值以后,再解锁. 这种做法需要的步骤比较多,有些麻烦,而且并发性也不好.有没有更简单的做法呢?答案之一是通过select LAST_INSERT_ID()这个操作.乍一看,它和select max(id)很象,但实际上

在Visual Studio中调试时,如何检查有关进程令牌的详细信息?

从Visual Studio 2005开始,watch窗口获得了一个伪寄存器,用于调查有关进程令牌的详细信息.所以,你只要开始调试,在监视窗口中写下“$user”, 有时查看特权和组的扩展视图会很有趣! 原文地址:https://www.cnblogs.com/yilang/p/12009392.html

mysql 触发器-监控表字段更新

最近想实现一个监控mysql表的某个或者某几个字段值的变化,当监控字段的值发生变化时,将原有值和更新值保存下来.想实现这个功能受限想到的就是触发器,mysql的触发器块很久没碰过了,重新拎起来还是免不了查些资料什么的.花了点时间搞定了这个触发器.这里写个小例子来记录下mysql触发器编写的过程. mysql触发器格式如下: CREATE TRIGGER 触发器名 触发器时间 触发事件 ON 表名 FOR EACH ROW BEGIN 执行语句 END注:触发器名 - 触发器的名称 触发器时间 -

Mysql如何为表字段添加索引???

1.添加PRIMARY KEY(主键索引): ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.添加UNIQUE(唯一索引) : ALTER TABLE `table_name` ADD UNIQUE ( `column` ) 3.添加INDEX(普通索引) : ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) 4.添加FULLTEXT(全文索引) : ALTER T

向SQL Server中附加本地数据库报错:附加数据库时出错。有关详细信息,请单击"消息"列中的超链接。

报错现象: 使用SQL Server附加报错:(使用visual连接也会报错:无法打开物理文件***试为文件附加自动命令的数据库,但失败.已存在同名的数据库) 问题分析: 这是由于权限不够所导致的 解决办法: 1.打开数据库文件夹的属性,具体操作流程如图所示 2.问题解决 原文地址:https://www.cnblogs.com/litstar/p/12590982.html

MySQL复制表字段到另外一个表的字段

有时候,我们需要复制某个字段一整列的数据到另外一个新的字段中,这很简单,SQL可以这么写: UPDATE tb_1 SET content_target = content_source; 大概写法如下:名仕娱乐城 Update {your_table} set {source_field} = {object_field} WHERE cause 有Navicat等工具更好,可以直接选中一列数据,拷贝粘贴到你需要的列中.如果是同一个表那没什么问题,如果是新表,请保持它们的行数是一致.如果行数不