首页 > 解决方案 > 匹配字符串 SQLite 中的子字符串

问题描述

所以我有两个看起来像这样的表:

表格1

IP        | Product | Version
192.x.x.x | IBM BD2 | 9.7

表 2(一个字符串,有点像 Product 和 Version 的连接)

ID  |  Platform                 | Description
50  |  IBM DB2 9.7 < FP11 40690 | This is XYZ

我希望能够针对 Table2.Platform 搜索 Table1.Product 和 Table1.Version 并返回如下内容。

表3

 Product  | Version | Description
 IBM DB2  | 9.7     | This is XYZ

我曾尝试使用 IS LIKE 和 INSTR,但这些似乎不起作用。

我不确定这是否可能,因为这两个表没有关系并且匹配不准确,我正在寻找一种“在字符串中查找”来将产品和版本与平台字符串隔离开来。

我目前的查询是:

   SELECT Table1.Product Table1.Version Table2.Description FROM Table2, Table1 WHERE Table1.product IS LIKE Table2.platform


Error: near "Table2": Syntax Error

标签: sqlite

解决方案


对于此示例数据,您需要连接表和子句LIKE中的运算符:ON

SELECT t1.Product, t1.Version, t2.Description 
FROM Table1 t1 INNER JOIN Table2 t2 
ON t2.Platform LIKE t1.Product || ' ' || t1.Version || '%'

请参阅演示


推荐阅读