我试图比较两个不同表中的一列中的数据。这两个表是多了很多列,但为了简单起见.....SQLITE比较两个表中的列以查找LIKE数据
CREATE TABLE A(
ID integer PRIMARY KEY AUTOINCREMENT,
name char(20)
);
CREATE TABLE B(
ID integer PRIMARY KEY AUTOINCREMENT,
name char(20)
);
INSERT INTO A(name) VALUES ('John Smith');
INSERT INTO A(name) VALUES ('J Doe');
INSERT INTO A(name) VALUES ('Jane Smith');
INSERT INTO B(name)VALUES('John Smith');
INSERT INTO B(name)VALUES('J. Doe');
INSERT INTO B(name)VALUES('jane smith');
大部分我所发现的迄今已发现表之间的差异,但我还没有设法找到如何匹配类似的数据。我在寻找的东西会产生这样的结果:
表A | 表B
约翰·史密斯 | John Smith
Jane Smith | jane smith
J Doe | J. Doe的
下面的代码匹配了几个名字:
CREATE TABLE tblC (
tblAName char(20),
tblBName char(20)
);
INSERT INTO tblC (tblAName, tblBName)
SELECT
tblA.name,
tblB.name
FROM tblA
LEFT JOIN on tblB WHERE tblA.name LIKE tblB.name;
不过,我还没有想出如何让包含标点符号的名字。这不起作用:
INSERT INTO tblC (tblAName, tblBName)
SELECT
tblA.name,
tblB.name
FROM tblA
LEFT JOIN on tblB WHERE tblA.name LIKE tblB.name
WHERE tblA.name LIKE "%Xxx%" OR "%X.%" tblB.name LIKE "%Xxx%" OR "%X.%";
定义“相似”。 –
类似的,我的意思是如果表A在名称字段中有“John Smith”,我希望它匹配到能够B名称字段包含“JOHN SMITH”,JOHN_SMITH“,”JohnSmith“等的地方。 – taylorbuckeye
列举了一些例子,但没有任何可以指定算法的例子 –