sql字段多个值查询的例子

在数据表中一个字段中有多个值以逗号分开,每个值在其它表中都有对应的数据信息,如下图

想要输出的结果是:

id  service_name

1  汽车美容,汽车装潢

…..

这种情况下,使用in语句并不能达到想要的结果,可以在php中,对数据进行处理;

例如:

foreach($data as $k=>$val){

$data[$k][‘service_name’] = $conn->fetchColumn(“SELECT group_concat(service_name) from service where id in(“.$val[‘service_id’].”)”;

}

就可以达到想要的结果

时间: 2024-10-21 16:44:47

sql字段多个值查询的例子的相关文章

SQL在单一表中查询具有重复字段值的记录

SQL在单一表中查询具有重复字段值的记录:主要使用HAVING Count(*)>1方法来实现 SELECT T_User.UserName, T_User.UserID FROM T_User WHERE (((T_User.UserName) In (SELECT [UserName] FROM [T_User] As Tmp GROUP BY [UserName] HAVING Count(*)>1 ))) ORDER BY T_User.UserName;

用SQL语句查询数据库中某一字段下相同值的记录方法

今天接到一任务,有一张学生信息表(Excel表),里面有一万多条记录,现在要把这张表导入到数据库中,并设置学生学号为主键,但是现在这张表中的学生学号有重复的记录,我必须先找出这些重复的记录,然后再进行筛选,经过研究问题终于得到解决.      以上问题实际上就是查询数据库表中某一字段值重复的记录,这里省略如何将Excel表导入到数据库步骤,只讨论用SQL查询数据库中某一字段下相同值的记录方法. 现在假设数据库表名为student,里面有字段Sno(学号),ID(身份证),这里提供两种查询的方法:

【MYSQL数据库开发之四】MYSQL NULL值操作、批处理模式、常用查询的例子、计数行、模式匹配等

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/mysql/781.html 继续上一篇继续讲解MySQL的相关知识点:      1. NULL 值操作: NULL值可能令人感到奇怪直到你习惯它.概念上,NULL意味着"没有值"或"未知值",且它被看作与众不同的值.为了测试NULL,你不能使用算术比较 操作符例如=.<或!=.为了说明它,试试下列查询:

sql-SQL Server查询 一个字段中不同值在另一个字段中分别出现的总个数,总个数从打到小排序?

问题描述 SQL Server查询 一个字段中不同值在另一个字段中分别出现的总个数,总个数从打到小排序? GoodsID Num A 4 B 2 C 1 A 3 B 4 C 3 我想得到: GoodsID Count A 7 B 6 C 4 用SQL Server语句如何实现?恳请行家高手不吝惜指点!万分感谢!! 解决方案 select sum(Num) as Count, GoodsID from table group by GoodsID 2015.05.28 17:16 解决方案二: s

mysql replace 批量替换字段中的值例子

命令 UPDATE 表名 SET 指定字段 = replace(指定字段, '要替换的字符串', '想要的字符串') WHERE 条件; 例子  代码如下 复制代码 UPDATE article SET content = replace(content, '解决', '解放') WHERE ID<5000; 例子 项目中有可能会遇到批量替换字段中的值,如下需求: 把上图中img_path字段中的upload全部替换成uploads,这个时候mysql的replace函数就很有用了.   sql

SQL重复记录查询 查询多个字段、多表查询、删除重复记录的方法_Mysql

SQL重复记录查询 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断  select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 例二:  select * from testtable where numeber in (select number from people group by numb

什么sql语句能通过一个值查询其所在的列名

问题描述 什么sql语句能通过一个值查询其所在的列名 差不多就是这样的一个表.怎么样才能在查询[常州代派]时返回[江苏],查询[东莞直营公司]时返回[广东] 解决方案 我觉得应该采用两张表城市名一种表如下图id city1 浙江2 广东 公司一张表id 公司名 城市id1 佛山A公司 2这样通过两种表来进行查找. 解决方案二: 用SQL语句怎么查询列名?用SQL语句怎么查询列名? --转载[DB2]SQL语句 查询列名.表名等信息 解决方案三: 应该不行吧,sql查数据就是根据所在的哪张表查哪些

字段相同的值-MySQL查询求帮助快绝望了

问题描述 MySQL查询求帮助快绝望了 所有的查询都在USER表,我分解开了条件,第一个SELECT * FROM USER u WHERE u.channelId='301040'; 根据查出来userDeviceid的值查,第二条件 想得到userDeviced字段相同的值大于2条和2条以上所对应的用户 想最终得到,这种数据,每条用户的名字Code不一样,但是userDeviceId是一样的 解决方案 select * from user where userDeviceid in( SEL

sql字段默认值设置成存储过程

问题描述 sql字段默认值设置成存储过程 存储过程 [dbo].[autoidu] N'客户编号'执行后能得到一个字符串,比如是'123456789',但每次值是不一样的. 现在有个表 客户资料,我想加个字段 客户编号,我希望设置默认值为上面的存储过程执行后的值.应该怎么设置? alter table 客户资料 add 客户编号 nvarchar(15) default [dbo].[autoidu] N'客户编号' 是不是不能这样?有没有什么办法解决? 解决方案 alter table 客户资