1

我有一些药物名称的数据,如下所示。

ENPARIN 100MG/1.OML INJ 00781-3500-69 
WARIN 7.5MG TAB 68382-0058-01 
TR/HC 37.5-25MG CAP 00527-1632-01 

我只需要得到像这样的药物名称

ENPARIN 100MG/1.OML
WARIN 7.5MG TAB
TR/HC 37.5-25MG CAP 

如何使用mysql中的字符串操作来实现这一点。

4

1 回答 1

1

看起来您的样本中有四个子字段。当您从表中选择时,您似乎想保留其中的三个。

但这可能不是真的:您的问题要求转换ENPARIN 100MG/1.OML INJ 00781-3500-69ENPARIN 100MG/1.OML(离开INJ)。

无论如何,这会得到由空格分隔的前三个子字段。

SUBSTRING_INDEX('WARIN 7.5MG TAB 68382-0058-01', ' ', 3);

SUBSTRING_INDEX () 是一个有用的字符串函数还有很多其他的。值得您花时间了解它们。

如果您想删除12345-1234-12包含它们的项目末尾的数字,您可以试试这个

 SELECT REGEXP_REPLACE('WARIN 7.5MG TAB 68382-0058-01',
           ' [0-9]{5}-[0-9]{4}-[0-9]{2}$', '');

如果您对这些字符串有各种不同的布局,那么您的未来就会有一个看起来像这样的大语句。

SELECT CASE WHEN something THEN something
            WHEN something THEN something
            WHEN something THEN something
            ELSE column END 

维护起来一点也不有趣。

如果可能的话,你最好把这些东西分成四列。我知道您的药品供应商可能不会为您这样做。

于 2020-08-10T18:32:04.953 回答