好的,这可能是一个愚蠢的问题。
我正在进行一些字符串匹配...特别是规范化的患者数据匹配。所以我必须耐心地使用数据库,并希望将一个字符串从一个匹配到另一个。但我在两边都规范了字符串。
作为一个例子,我将所有内容都设为小写,删除字母数字,将名称修剪为前3个字符,对于没有3个字符的任何名称字符串,我用“_”填充它们作为通配符。
这是一个带有DOB的示例名称和规范化名称:
DB1: John A Smith 4/27/2011 --> joha__smi04272011
DB2: John Smith 4/27/2011 --> joh___smi04272011
所以现在我用的是:
select 'joha__smi04272011' like 'joh___smi04272011';
是真的
but select 'joh___smi04272011' like 'joha__smi04272011';
是假的
我想在一个Db上做两个比较,如果两个都是真的那么产生True。
当然,这意味着下划线将是两侧的通配符。我考虑过或者这样做但是我不能用它来查询数据库,或者如果可以的话,我不能在实践中把它包围起来......
这样做我正在寻找什么?我只是看起来很奇怪:
我正在寻找drdata
中的本地ID并迭代并从其他数据库发送查询
select localid from drdata where microid like 'joh___smi04272011' or 'joh___smi04272011' like microid;
做正确的方法似乎太疯狂了。缺点? Reommendations?我已经运行了查询,它似乎在'like'
的两侧使用通配符进行双向匹配感谢。