【发布时间】:2014-07-03 11:03:47
【问题描述】:
我有两张桌子:
table 1 - ~230 000 行并包含产品序列号
table 2 - ~4700 行,还包含产品序列号,但格式略有不同
table 1 序列号类似于 123456
table 2 序列号类似于 ABC123456DGF
我需要找出表 1 中实际存在的表 2 中的序列号。我可以使用 LIKE 函数来做到这一点,但我很难弄清楚如何正确地将它循环到整个表中,以便每一行都得到对照表 2 进行测试。
有什么想法吗?
【问题讨论】:
-
假设
ABC和DGF是动态值,那么您如何在不使用LIKE的情况下做到这一点 -
你不能用like来做到这一点,因为'%12345%'也可以返回你'ABC12345678EFG'
-
每种情况下的数字部分是否已知固定长度?
-
您使用哪个数据库?从您的示例中仅包含数字的序列号和仅字母的前缀和后缀?
-
最安全的方法是如果有一种方法可以将表 2 中的所有序列号转换为表 1 的格式 - 那么您不需要
LIKE来比较它们。为此,有一些方法可以只返回表 2 中序列号的数字部分。