mysql - 在 MySQL 中搜索像字符串列这样的元组内的键值的方法

标签 mysql sql spring-boot jpa-2.0

我需要在名为“properties”的MySQL数据库列之一中保存一个字符串,该字符串代表CPU属性的7个元素元组,例如:

元组:TotalRam、NumOfcores、OsImage、IsHyperThreaded

实际字符串:200,3,LinuxSET EC Image SLES11SP4-4 Revision 0 ia32e,true

比我需要能够执行如下查询:返回所有行 - NumOfCores==2 && isHyperThread==true

我正在 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';

您还可以使用虚拟场。我将在几分钟内添加一个示例。

关于mysql - 在 MySQL 中搜索像字符串列这样的元组内的键值的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42108277/

相关文章:

mysql - 如何将表连接在一起 - SQL

php - 为什么我的 or die() 函数不起作用

mysql计算select中的百分比

mysql - 按年龄、性别和 MySQL 中请求的报告对数据进行分组

sql - 根据最大值连接表

java - 为什么 JDBC 身份验证在 Spring Boot 和 React 中因 CORS 失败?

java - Spring Cloud Stream kafka聚合使用 Autowiring bean的新实例

PHP 去除非整数并将输出重新格式化为电话号码

php - 查询检查太多行,如何减少?

java - Spring Boot 自定义登录 : "login", 模板可能不存在,或者可能无法被任何配置的模板解析器访问