当前位置: 首页 > 面试题库 >

MySQL字符串设置和获取交集

施轶
2023-03-14
问题内容

我有一个计划不佳的数据库,该数据库在诸如“
1、2、5、10”之类的文本列中有一个ID集。我需要得到以相同方式设置的两列的交集。我不喜欢使用PHP或其他脚本语言来执行此操作,我也不喜欢MySQL自定义函数。有什么办法可以得到逗号分隔字符串给定的两个集合的交集?

实际上,我不需要完整的交集,我只需要知道两组中是否存在相同的数字。如果是,我需要具有“ 1”,如果没有相同的数字,则需要具有“ 0”。

谢谢你。


问题答案:

您可能可以通过REGEXP一些巧妙的替换来做到这一点。

认为应该这样做(免责声明:尚未对其进行广泛的测试):

SELECT col1,
       col2,
       CONCAT('(', REPLACE(col2, ',', '(\\,|$)|'), '(\\,|$))') AS regex,
       col1 REGEXP CONCAT('(', REPLACE(col2, ',', '(\\,|$)|'), '(\\,|$))') AS intersect
FROM tbl

参见http://sqlfiddle.com/#!2/7b86f/3

解释:这将转换col2为用于与匹配的正则表达式col1。该(\,|$)位与逗号或字符串末尾匹配。希望这可以帮助…



 类似资料:
  • 这个问题与Weblogic 12c有关。 我有一个EAR文件,我想在各种环境中部署(dev、QA、pre-prod和prod)。然而,我的应用程序需要用户名和密码(用于连接到另一台服务器),而这四种环境中的用户名和密码并不相同。我不想在4个不同的EAR文件中打包4个不同的属性文件。我想要一个通用的EAR文件。此外,我不想在打包期间处理prod密码。 理想情况下,我希望每个环境的管理员为环境提供适当

  • 本文向大家介绍Java获取和设置字段,包括了Java获取和设置字段的使用技巧和注意事项,需要的朋友参考一下 示例 使用Reflection API,可以在运行时更改或获取字段的值。例如,您可以在API中使用它,以根据某个因素(例如操作系统)来检索不同的字段。您也可以删除修饰符,例如final允许修饰最终的字段。 为此,您将需要以getField()如下所示的方式使用Class#方法: 获取字段要容

  • 假设我有这个字符串作为输入 char peer0_0[] = { 0x17,0x03,0x03,0x00,0xa2,0x00,0x00,0x00,0x01,0xc3,0xb3,0xee,0x9a,0x37,0xb6,0xbf,0x8f,0x89,0x58,0xe4,0x8d,0x8a,0x0b,0xe8,0x98,0xba,0x49,0x0f,0x45,0x7c,0x93,0x65,0x 0x80

  • 本文向大家介绍MySQL select语句从字符串左侧获取5个字符,包括了MySQL select语句从字符串左侧获取5个字符的使用技巧和注意事项,需要的朋友参考一下 要从字符串的左侧获取字符数,请在MySQL中使用LEFT方法。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是从字符串左侧获取5个字符的SELECT- 这

  • 问题内容: 我有一些包含字母数字值的字符串输出。我只想从该字符串中获取数字。如何通过查询获取?我可以使用哪个MySql函数? 我的查询就像: 输出: 我想要输出像: 问题答案: 如果字符串以数字开头,然后包含非数字字符,则可以使用该函数,或者通过添加一个将其隐式转换为数字: 要从 任意 字符串中提取数字,您可以添加一个自定义函数,如下所示: 定义函数后,您可以在查询中使用它: