我試圖比較兩個不同表中的一列中的數據。這兩個表是多了很多列,但爲了簡單起見.....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
列舉了一些例子,但沒有任何可以指定算法的例子 –