mySQL:如何编写查询代码

mySQL:如何编写查询代码,mysql,Mysql,我有两个表clients和grades,其中clients有一个grades列,索引从1到10。这些指数与等级表中的ID相对应(当然)。假设一个客户在clients.grade列中的索引为1,5,8,而不是我想要从grades表中的那些行中获取的* 我的第一种方法是在client表中使用char(20)类型的grade字段,并用逗号分隔的索引(如1、5、8或其他数字)填充它。然后从clienttable I explode(PHP)中的一个客户端读取这些值,并将结果分解为一个包含3个(或更多)单

我有两个表
clients
grades
,其中
clients
有一个
grades
列,索引从1到10。这些指数与
等级
表中的ID相对应(当然)。假设一个客户在
clients.grade
列中的索引为1,5,8,而不是我想要从
grades
表中的那些行中获取的*

我的第一种方法是在
client
表中使用char(20)类型的
grade
字段,并用逗号分隔的索引(如1、5、8或其他数字)填充它。然后从
client
table I explode(PHP)中的一个客户端读取这些值,并将结果分解为一个包含3个(或更多)单个值的数组。然后在下面的查询中,我选择
grade
表中的所有行

现在一个问题是使用char字段还是枚举字段,另一个(一般)问题是如何对整个任务进行简单、巧妙的查询

我还没有编写代码。
grades
表最多有10行,其中作为
客户端
表,大约有2000行,最多有5000行。我希望我能把我的方法描述得通俗易懂


欢迎提出任何建议

等级
列拆分为一个新表(
客户_等级
?),其中包含
客户ID
等级
,并且每个
客户
都有多条记录。然后可以使用
连接
客户
客户
字段上的
客户_等级
表检索客户的等级


表中的每个字段都应该包含一条信息,逗号分隔的值将导致额外的处理。如果你想知道谁得了某个特定的分数,那么使用一个单独的表格也会帮助你,等等

关于这个问题的想法可能已经重复了,但是在客户
表格
本身中创建了10个列。问题是您必须验证
客户机
表中的每一列,并获取
等级
表中相应的行,这必须在迭代中完成。或者有更好的方法吗?
client\u grade
表将有两列:
client\u id
grade
。您在该表中插入多条记录,一个客户达到的每个等级对应一条记录(即,如果我达到3个等级,将有3条记录)。然后使用
JOIN
从以下三个表中检索信息:
client->client\u grade->grades
。这个系统的另一个优点是,如果一个等级有争议并且随后发生了更改,那么更新查询将非常简单—了解表关系并以合理的方式创建模式。如果一个字段需要包含多个数据段,那么它本身就应该成为一个表,并与主表有一个关系+这是我的荣幸。我将遵循这个答案,并在稍后报告这项工作。