问题描述
在MySQL中通过字符串(text)数据类型储存一个列表(数组时),两边带有[]
中括号
导致FIND_IN_SET()
语句无法生效
解决经历
先是简单粗暴的将list转换为str,然后通过切片去除两边的中括号
但单个数据时,不存在中括号,切片会导致数据不完整。
使用for循环逐个添加的话,结尾可能会多一个逗号,处理起来比较复杂
最终解决
后来在网上搜索资料了解到一个python函数
join()函数
语法: ‘sep’.join(seq)
参数说明
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
返回值:返回一个以分隔符sep连接各个元素后生成的字符串
示例
list=[2021,2020,2019]
liststr = ','.join(str(i) for i in list)
print(liststr)
2021,2020,2019
其他知识
FIND_IN_SET(str,strlist)
str 要查询的字符串
strlist 字段名 参数以”,”分隔 如 (1,2,6,8)
查询字段(strlist)中包含(str)的结果,返回结果为null或记录