mysql怎么一个字段设置多个值

关系数据库的第一范式描述如下:

数据表中的每一列(字段)必须是不可分割的最小单位。
即保证每一列的原子性。

所以不可能在一个字段中存储多个值。

当然,你可以将多个值序列化为一个字符串,或者将一个二进制存储在一个字段中,比如字符串“作者1,作者2,作者3”,但这并不是什么打电话从.第一种范式是多个值只计算为一个值,这对于以后的详细查询来说不方便。
例如,如果您要查找作者信息,它应该不仅仅是作者的姓名。

因此,典型的设计将具有详细的表和外键关系。

有一个图书表,记录图书信息。

还有一个Author表,记录作者信息。
查看books表中的图书ID。

这样,当你查询一本书的作者时,只需要使用外键连接两个表即可。

MySQL如何在一个字段中包含多个值mysql一个字段包含

MySQL:如何在一个字段中包含多个值?在MySQL中,有时需要在一个字段中存储多个值。
例如,您想要存储文章的标签。
一篇文章可以有多个标签,例如“技术”、“编程”、“Web开发”等。
我们需要以某种方式将这些标签存储在数据库中,并使其易于查询。
通常,最常见的方法是使用逗号分隔符或JSON格式存储多个值。
下面简单介绍一下这两种方法在MySQL中的使用。
使用逗号分隔符存储多个值假设您有一个名为“文章”的表,其中包含文章的ID、标题和标签。
您可以存储多个标签,使用逗号分隔符将它们组合成一个字符串,然后在查询时使用LIKE进行匹配。
表结构如下:CREATETABLEarticles(idint(11)NOTNULLAUTO_INCRMENT,titlevarchar(255)NOTNULL,tagsvarchar(255)NOTNULL,PRIMARYKEY(id))对于此表,您可以插入如下数据:INSERTINTOarticles(title,tags)VALUES('第1条','技术,郑编');INSERTINTOarticles(title,tags)VALUES('第2条','技术,Web开发');INSERTINTOarticles(title,tags)VALUES('文章3','编程、Web开发');现在我们查询所有包含“编程”标签的文章。
SELECT*FROMarticlesWHEREtagsLIKE'%programming%';此查询返回文章1和文章3。
使用JSON格式存储多个值在MySQL5.7及更高版本中,您可以使用JSON格式存储和查询复杂数据。
假设我们有一个名为“文章”的表,其中包含文章的ID、标题和标签。
您可以将标签作为JSON数组存储在字段中。
表结构如下:CREATETABLEarticles(idint(11)NOTNULLAUTO_INCRMENT,titlevarchar(255)NOTNULL,tagsJSONNOTNULL,PRIMARYKEY(id));对于该表,您可以像这样插入数据:INSERTINTOarticles(title,tags)VALUES('第1条','["技术","编程"]');INSERTINTOarticles(title,tags)VALUES('第2条','["技术","Web开发"]');INSERTINTOarticles(title,tags)VALUES('第3条','["编辑器"编程","WebDevelopment"]');现在我们需要查询所有包含标签“Programming”的文章。
SELECT*FROMarticlesWHEREJSON_CONTNS(tags,'"Programming"');该查询返回文章1和文章3。
摘要多个值是否使用逗号分隔符或者使用JSON格式来存储它们,它们各有利弊:它们难以查询和修改,并且不提供JSON格式的类型安全性。
优点是可以轻松过滤和查询,并且提供类型安全性和更好的可扩展性。
如果您使用MySQL5.7或更高版本,建议使用JSON格式。

MYSQL查一个字段中多个值

in(v1,v2..vn),只有匹配v1,v2vn才能被检测到。
IN关键字可以判断给定字段的值是否在指定的集合中。
如果该字段的值在集合中,则满足查询条件并查询该记录。
如果不在集合中则不满足查询条件。
语法规则如下:[NOT]IN(元素1,元素2,...,元素n)。
例如:select*fromSTUDENTwhereSTU_AGEin(11,12);