我在看一个专栏( Codes
)在一个mysql表中,它有一系列由“;”分隔的代码。
id | Codes
------------
01 | O5.12;Z33.9;A70.2;PR96
02 | A57.0;Z64.88;OA100
03 | O7.99;PR1;CO45
我还有第二组数据:代码类型和属于每种类型的代码的列表。目前它们是这样组织的(尽管这种结构可以改变):
CodeType | Code
--------------------
HR-PT | Z33.9
HR-PT | O5.12
NCS | PR96
NCS | CO96
问题是:对于第一个表中的每条记录,我想说是否有任何代码属于特定的集合。类似于这个问题,我是这样解决的:
select Codes regexp '(^|.*;)(Z33[.]9|O5[.]12)(;.*|$)') as HRPT_Code
但是,与静态列表不同的是,我希望动态地拉取要检查的hr-pt代码,例如使用 select Code from code_types where CodeType='HR-PT'
有没有办法有效地完成这个任务?
1条答案
按热度按时间s1ag04yj1#
你不必和正则表达式混在一起,你可以
replace
带逗号的分隔符(,
),然后使用find_in_set
: