我有一些药物名称的数据,如下所示。
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中的字符串操作来实现这一点。
我有一些药物名称的数据,如下所示。
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中的字符串操作来实现这一点。
看起来您的样本中有四个子字段。当您从表中选择时,您似乎想保留其中的三个。
但这可能不是真的:您的问题要求转换ENPARIN 100MG/1.OML INJ 00781-3500-69
为ENPARIN 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
维护起来一点也不有趣。
如果可能的话,你最好把这些东西分成四列。我知道您的药品供应商可能不会为您这样做。