sqlite - 匹配字符串 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
解决方案
对于此示例数据,您需要连接表和子句LIKE
中的运算符:ON
SELECT t1.Product, t1.Version, t2.Description
FROM Table1 t1 INNER JOIN Table2 t2
ON t2.Platform LIKE t1.Product || ' ' || t1.Version || '%'
请参阅演示。
推荐阅读
- python - 在 VSCode 中为项目设置 python 解释器
- javascript - Backbone:如果输入未更改,则隐藏对话框弹出窗口
- c# - C# 如何映射 appsetting 的两个部分并将唯一设置放入单个类对象中
- linux - 最小制表位 2
- javascript - 使用 ID 从 API 中搜索数据
- java - JavaFX:在 MenuItem 中设置图形节点和文本之间的间隙
- javascript - Graph 渲染完成后执行函数
- javascript - 在 localhost 中代理到 API 时如何解决错误
- react-native - '@react-navigation/stack' 已停止工作并出现错误 - 无法解析模块
- angular - 对 ngOnInit() 中的变量声明进行单元测试