数据库学习_mysql server_pymysql_SQL插入数组时的中括号问题

问题描述

在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

值得注意的是证书列表需要用str()

其他知识

FIND_IN_SET(str,strlist)
str 要查询的字符串
strlist 字段名 参数以”,”分隔 如 (1,2,6,8)
查询字段(strlist)中包含(str)的结果,返回结果为null或记录

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值