做网上商城网站设计,哪些网站使用vue做的,帮忙做网站,做网站运营有趣吗【Sql】把数据库字段用函数根据逗号分裂成列表#xff0c;然后判断列表中是否包含目标值 【1】问题描述【2】Oracle内置函数解决【3】mysql的内置函数INSTR()【4】mysql的内置函数FIND_IN_SET() 【1】问题描述
数据库中【库信息db】和【集群信息cluster】是一对多的关系… 【Sql】把数据库字段用函数根据逗号分裂成列表然后判断列表中是否包含目标值 【1】问题描述【2】Oracle内置函数解决【3】mysql的内置函数INSTR()【4】mysql的内置函数FIND_IN_SET() 【1】问题描述
数据库中【库信息db】和【集群信息cluster】是一对多的关系但是没有将集群信息存成多条而是把集群名称和集群地址通过逗号拼接然后存到一个字段里
现在需要根据集群名称判断某个集群是否已经和库名SCHEMA_NM绑定了因为CLUSTER_NM是拼接的字段所以可以考虑模糊查询like但是模糊查询匹配的不准确我们想要确保完整准确的查询到集群名对应的记录
【2】Oracle内置函数解决
可以使用Oracle的内置函数来实现将数据库字段根据逗号分裂成列表并判断列表中是否包含目标值。以下是一个示例查询
SELECT*
FROM( SELECT CLUSTER_NM, SCHEMA_NM FROM DB_X_CLUSTER WHERE INSTR( , || CLUSTER_NM || ,, ,模型集群111, ) 0 ) dxcLEFT JOIN PROJ_X_DB pxd ON pxd.SCHEMA_NM dxc.SCHEMA_NMLEFT JOIN PROJ_INFO pi ON pxd.PROJ_ID pi.id
WHEREpi.PROJ_STAT 0主要注意的是这一段
SELECT CLUSTER_NM, SCHEMA_NM FROM DB_X_CLUSTER WHERE INSTR( , || CLUSTER_NM || ,, ,模型集群111, ) 01‘,’ || CLUSTER_NM || ‘,’表示给数据库里的字段前后都加上逗号原来的值也就变成了【,大数据平台集群111,模型集群111,】这样就方便匹配 2‘,模型集群111,’给要查的目标值的前后也加上逗号 3INSTR判断字符串中是否包含目标值
【3】mysql的内置函数INSTR()
有时您想要在字符串中查找子字符串或检查字符串中是否存在子字符串。在这种情况下您可以使用字符串内置INSTR()函数。
INSTR()函数返回字符串中子字符串第一次出现的位置。如果在str中找不到子字符串则INSTR()函数返回零(0)。
INSTR(str,substr);
str是要搜索的字符串。 substr是要搜索的子字符串。
【4】mysql的内置函数FIND_IN_SET()
可以使用MySQL的内置函数FIND_IN_SET()来实现这个需求。FIND_IN_SET()函数可以在一个由逗号分隔的字符串中查找一个值如果找到则返回其索引位置。
下面是一个示例查询展示了如何将字段按逗号分割成列表并判断列表中是否包含目标值
SELECT *
FROM your_table
WHERE FIND_IN_SET(目标值, REPLACE(your_column, , )) 0;在上述查询中您需要将your_table替换为您的表名your_column替换为您要进行匹配的字段名目标值’替换为您要匹配的值。
请注意使用REPLACE()函数将字段中的空格去除是为了避免空格干扰匹配。