有没有办法将数据与mySQL中的一个字段分开?

时间:2017-01-13 08:31:47

标签: mysql database data-structures

我们的数据库中有一个药物专栏,其中包含药物名称(例如Xanax)及其大小(0.5mg)。

E.g。药物名称:Xanax 0.5mg

但是,我们需要将两个数据分开而不创建大小的新列,因为这样做会对数据库结构产生巨大影响。我们只需要使用药物名称填充列表,而不是基于此单个字段/列的大小。

有没有办法只提取药物的名称?让我们说迫使用户在药物大小周围添加一个括号(例如Xanax(0.5mg))?意思是只提取第一个“(”字符?

之前的所有字符串

或者有更好的方法吗?

3 个答案:

答案 0 :(得分:1)

试试这个:

<强> mytable的:

id  name
1   Xanax (0.5mg)

<强>查询:

select id, substring_index(name,'(',1) from tb_mx;

将返回:

1, Xanax

因此请相应地使用它。

答案 1 :(得分:0)

您可以以JSON格式存储药物数据

{"some_unique_id":{
    "name": "Xanax",
    "quantity": "0.5mg"
}}

然后使用Functions That Search JSON Values获取MySQL 5.7以获取所需的参数。

答案 2 :(得分:0)

我对制药行业中使用的DB有一些经验,我可以说这样做不行。

以下是我认为你必须做的事情(规范化)

表UM(如mg,ml等) 表包装(如每个pice的数量,pice nr,FK ID_UM) 表药物(名称,fk id_packing)

不要担心太空。表UM和Packing将有很多重用ID,而int int比varchar少。

或者可以使用JSON ideea,但是在报告部分时会遇到一些问题。