将多个值插入一行mySQL

hivapdat  于 2022-12-03  发布在  Mysql
关注(0)|答案(2)|浏览(163)

如何在一行中插入多个值?
我的查询

insert into table_RekamMedis values ('RM001', '1999-05-01', 'D01', 'Dr Zurmaini', 'S11', 'Tropicana', 'B01', 'Sulfa', '3dd1');

我不能在一行中插入两个值。有其他方法吗?

lrpiutwd

lrpiutwd1#

我不懂你说的人类语言,所以这只是猜测。
您的系统中有两个entities。一个是dokter,另一个是script(处方)。您的要求是为每个dokter存储零个或多个script。也就是说,实体之间的relationship是一对多。
在关系数据库管理系统(SQL系统)中,您可以使用两个表(每个实体一个表)来实现这一点。您的dokter表将包含每个医生的唯一标识符,以及医生的描述性属性。

CREATE TABLE dokter(
  dokter_id  BIGINT AUTO_INCREMENT PRIMARY KEY NOT NULL,
  nama       VARCHAR (100),
  kode       VARCHAR(10),
  /* others ... */
);

您将有第二个用于脚本的表

CREATE TABLE script (
  script_id  BIGINT  AUTO_INCREMENT PRIMARY KEY NOT NULL,
  dokter_id  BIGINT  NOT NULL,
  kode       VARCHAR(10),
  nama       VARCHAR(100),
  dosis      VARCHAR(100),
  /* others ... */
);

然后,当医生开两张处方时,您在dokter中插入一行,在script中插入两行。通过将正确的dokter_id放入每个script行中,可以建立scriptdokter之间的关系。
然后,您可以使用如下所示的查询来撷取此信息:

SELECT dokter.dokter_id, dokter.nama, dokter.kode,
       script.script_id, script.kode, script.nama, script.dosis
  FROM dokter
  LEFT JOIN script ON dokter.dokter_id = script.dokter_id

学习entity-relationship数据设计。这是值得你花时间学习的,它将极大地提高你的职业生涯。

uxhixvfz

uxhixvfz2#

您不能在单个字段中 * 存储 * 多个值,但有多种选项可以实现您的目标。
如果你知道一个给定的字段只能有一定数量的值,那么创建多个列来保存这些值可能是有意义的。在你的例子中,Nama obat可能只有2个不同的值,所以你可以将该列分成两列:Nama obat primaryNama obat secondary中的一个或多个。
但是,如果给定的字段可以有任意数量的值,那么创建一个表来保存这些值可能是有意义的,这样它看起来就像这样:
| 无RM|纳马奥巴特|
| - -|- -|
| RM 001型|磺胺|
| RM 001型|阿尼米姆|
| RM 001型|ABC公司|
| RM 002型|XYZ坐标系|
然后,您可以使用简单的连接将该表与原始表组合在一起:

SELECT * FROM table_RekamMedis JOIN table_NamaObat ON table_RekamMedis.NoRM = table_NamaObat.NoRM

上面的代码负责数据的存储。如果你想查询数据,结果会按照你在问题中的布局显示,你可以使用GROUP_CONCAT将多个NamaObat字段合并成一个字段,如下所示:

SELECT GROUP_CONCAT(NamaObat SEPARATOR '\n')
...
GROUP BY NoRM

相关问题