聊聊mysql的单列多值存储

聊聊mysql的单列多值存储,第1张

本文主要研究一下mysql如何用一个列来存储多个值

mysql用单列存储多值通常用于一对多的反范式处理,具体可以用bit、int/bigint、varchar、set类型来实现,缺点是不支持索引。

如果修改有规律可循的,可以按规律编写更新查询。

无规律的可以使用case when流程,例如

update tblName set sName=

case sName

when '张三' then '王二'

when '李四' then '麻子'

end where

sName in ('张三','李四')

下面两种情况:1.返回值:由全体出入参数合并在一起而得到的字符串。只要输入的参数中有null值,就返回null。concat允许只有一个输入参数的情况。因此,mysql单表多字段模糊查询可以通过下面这个sql查询实现select*from`magazine`whereconcat(`title`,`tag`,`description`)like‘%关键字%’2.如果这三个字段中有值为null,则返回的也是null,那么这一条记录可能就会被错过,怎么处理呢,我这边使用的是ifnull进行判断,则sql改为:select*from`magazine`whereconcat(ifnull(`title`,''),ifnull(`tag`,''),ifnull(`description`,''))like‘%关键字%’评论000加载更多


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/7290997.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-03
下一篇2023-04-03

发表评论

登录后才能评论

评论列表(0条)

    保存