在MySQL中类似元组的字符串列中搜索键值的方法



我需要保存在一个名为"properties"的MySQL数据库列中,一个表示cpu属性的7元素元组的字符串,例如:

元组:TotalRam、NumOfcores、OsImage、IsHyperThreaded

实际字符串:200,3,LinuxSET EC映像SLES11SP4-4修订版0 ia32e,真实

我需要能够执行以下查询:返回所有行-NumOfCores==2&isHyperThread==真实

我在spring-boot上下文中使用curdrepository。数据库是MySql,但版本没有JSON数据类型。

保存和查询这种元组/字符串的最佳方式是什么?

感谢

您必须拆分字符串。以下是4参数的样本

-- TotalRam
SELECT SUBSTRING_INDEX('200,3,LinuxSET EC Image SLES11SP4-4 Revision 0 ia32e,true',',',1);
-- NumOfcores
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('200,3,LinuxSET EC Image SLES11SP4-4 Revision 0 ia32e,true',',',2),',',-1);
-- OsImage
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('200,3,LinuxSET EC Image SLES11SP4-4 Revision 0 ia32e,true',',',3),',',-1);
-- IsHyperThreaded
SELECT SUBSTRING_INDEX('200,3,LinuxSET EC Image SLES11SP4-4 Revision 0 ia32e,true',',',-1);

所以你的查询是这样的:

SELECT *
FROM yourTable
WHERE
SUBSTRING_INDEX(SUBSTRING_INDEX(properties,',',2),',',-1) = 2
AND
SUBSTRING_INDEX(properties,',',-1) = 'true';

您也可以使用虚拟字段。我将在几分钟后添加一个示例。

最新更新