【问题标题】:Select for a substring in array in DB2选择 DB2 中数组中的子字符串
【发布时间】:2019-09-03 05:58:27
【问题描述】:

我在 DB2 中有以下 Car 的表:

 id     reference
 1      31943149-blue
 2      40213982-red
 3      93713946-blue
 ...

然后我需要找到引用结尾在动态颜色列表中的所有条目。我怎么能那样做? 事实上,颜色的动态列表应该从另一个查询到另一个表中找到,所以我想在性能方面可能比 UNION 或 INNER JOIN 更好。

提前致谢

【问题讨论】:

  • WHERE reference LIKE '%blue' OR reference LIKE '%red' OR .... 。使用应用程序语言代码(例如:PHP)动态准备查询
  • 但是颜色数组是动态的,我不知道到底是哪些
  • 这就是为什么我说准备查询字符串动态。例如:使用foreach ..循环
  • 但是我可以有一个非常大的颜色列表,如果有很多 LIKE OR 的性能如何?
  • 您可以将REGEXP_LIKE 与正则表达式red|blue|green 一起使用。您可以从颜色列表中动态构造此正则表达式。

标签: sql database db2


【解决方案1】:

您可以在ON 条件中使用LIKE 连接这两个表。

SELECT car.*
FROM car
JOIN colors ON car.reference LIKE ('%-' CONCAT colors.color)

【讨论】:

    猜你喜欢
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-16
    • 1970-01-01
    相关资源
    最近更新 更多