Mysql 数据字段值是用逗号隔开,如何写SQL语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql 数据字段值是用逗号隔开,如何写SQL语句相关的知识,希望对你有一定的参考价值。

参考技术A 1、将传递过来的值进行分割
用,分割成数组
例如:$var=explode(",",$str);
2、循环数组
3、在循环内查询sql
查询时候
有两种方法
按照sql语法或者php语法
sql

find_in_set(str1,str2);
php

strpos(str1,str2,start);
具体语法格式自己搜索一下吧。

mysql处理以逗号隔开的字段内容

有一个字段保存了CheckBox内容,比如职业目标选择对于数据库字段otWorkgoal,保存了1,2,3,4内容

现在需要使用纯mysql语句,将字段otWorkgoal根据内容,进行翻译成中文的内容。

可使用FIND_IN_SET()函数+concat_ws()函数实现。

FIND_IN_SET()可参考https://www.cnblogs.com/zxmceshi/p/5479892.html

 

concat_ws()可参考http://blog.csdn.net/desilting/article/details/38563087

 

具体的sql语句如下

select 
concat_ws(\',\',(select \'为创业积累经验技能与资源\' from online_person_info q where find_in_set(\'1\', q.otWorkgoal) and t.id = q.id)
,(select \'更高的职位晋升空间\' from online_person_info q where find_in_set(\'2\', q.otWorkgoal) and t.id = q.id) 
,(select \'更好的薪酬待遇\' from online_person_info q where find_in_set(\'3\', q.otWorkgoal) and t.id = q.id)
,(select \'更具挑战的工作内容 \' from online_person_info q where find_in_set(\'4\', q.otWorkgoal) and t.id = q.id)
,(select \'学习到更厉害的专业技能\' from online_person_info q where find_in_set(\'5\', q.otWorkgoal) and t.id = q.id)
,(select \'更舒适的工作环境\' from online_person_info q where find_in_set(\'6\', q.otWorkgoal) and t.id = q.id)
,(select \'减小工作压力\' from online_person_info q where find_in_set(\'7\', q.otWorkgoal) and t.id = q.id)
,(select \'更近的上班距离\' from online_person_info q where find_in_set(\'8\', q.otWorkgoal) and t.id = q.id)
,(select \'其他\' from online_person_info q where find_in_set(\'9\', q.otWorkgoal) and t.id = q.id)
) as otWorkgoal
from online_person_info t where t.id=\'61\'

即可进行翻译

以上是关于Mysql 数据字段值是用逗号隔开,如何写SQL语句的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 如何将Id相同的字段合并,并且以逗号隔开

mysql 字段内容是用逗号分隔的。怎么按序列查询内容

mysql字段存的有逗号隔开 取出来怎么分割了输出

mysql字段存的有逗号隔开 取出来怎么分割了输出

mysql查询某数字在某字段以逗号隔开的字符里面

php如何统计mysql数据库列中有逗号隔开的字段内多个值的个数