[英]MySQL join on substring
我在各種格式的列中都有一長串字符串。 我想搜索該子字符串,然后在保留原始列的同時組織該列。
一個表有8列,其中一列包含字符串。 在另一個表中也有單詞列表。 我想將列表中的單詞與那些字符串作為附加列進行匹配。 在“ Tom”,“ tom”,“ tom az”,“ Tom Hanks”的大表中將是這樣,所有這些列都只有一個“ Tom”(列表中的對應匹配項)。
我曾考慮過使用JOIN函數,但不確定如何使用子字符串。 excel邏輯將類似於“ = IF((SEARCH(“ Tom”,“ asfj Tom dsf”)),“ TOM”,“ NULL”)。
如果找到多個匹配項,我想使用帶有較早“ ID”的匹配項(一列從1到11mil的整數)。
這個問題仍然有點模棱兩可。 您應該真正顯示表結構,示例數據和預期結果。
假設您具有以下最小的結構和數據:
CREATE TABLE People (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
FullName TEXT
);
INSERT INTO People (FullName) VALUES ('Tom Hanks');
INSERT INTO People (FullName) VALUES ('Mary 467');
INSERT INTO People (FullName) VALUES ('ann margaret' );
INSERT INTO People (FullName) VALUES ('ziddy tom');
INSERT INTO People (FullName) VALUES ('bloody mary');
INSERT INTO People (FullName) VALUES ('mary ann');
CREATE TABLE Names (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
Name TEXT
);
INSERT INTO Names (Name) VALUES ('Tom' );
INSERT INTO Names (Name) VALUES ('Mary');
INSERT INTO Names (Name) VALUES ('Ann' );
...然后您可以通過如下查詢獲得第一個結果:
SELECT p.*, n.Name
FROM People p
JOIN Names n ON p.FullName LIKE CONCAT('%',LOWER(n.Name),'%');
雖然有一些問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.