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

查询列中的多个值

别俊誉
2023-03-14
问题内容

我有一张像这样的桌子:

id     name            children
1      Roberto         Michael,Dia
2      Maria           John,Alex
3      Mary            Alexandre,Diana

我的问题是;我想找到谁有一个叫亚历克斯的孩子。

我无法"where children = 'Alex'"在SQL中使用,因为在同一单元格中有多个名称。

所以我用"where children LIKE '%Alex%'"-看起来很聪明,但同时我像Alex一样开始一切:(
Alexandre或我想获得dia,但结果是dia和diana :(

如何获得该数据类型的单个Alex?

我希望我能用我的英语不好来解释我的问题:D


问题答案:

最好的解决方案是规范您的架构。您应该有一个单独的表,每个子表都有一行,而不是用逗号分隔的列表。然后,您可以与该表连接以查找具有特定子项的父项。有关此示例,请参见@themite的答案。

但是,如果由于某种原因您不能这样做,则可以使用FIND_IN_SET

WHERE FIND_IN_SET('Alex', children)


 类似资料:
  • 问题内容: 这是查询: 现在,如果我在字段上添加了带有多列的索引: MySQL将利用此多列索引吗?还是不使用它,因为一个字段位于where子句中,而另一个字段位于order语句中?还是只要我按多列索引的顺序使用字段就没关系吗? 问题答案: 好问题。 索引从左到右起作用,因此您的条件将使用索引。在这种情况下,排序也将利用索引(下面的执行计划)。 从手册: 即使索引与索引不完全匹配,也可以使用索引,只

  • 问题内容: 我知道标题听起来描述性不强,但这是我能想到的最好的: 我有这张桌子 实际上,这是封装在视图中的非常复杂的查询,但现在已不再重要。 我想为每个ID包含最高BDate的行。在此示例中,这将是结果。 我已经尝试过 但随后它返回所有行,因为对于每个值,列均不同。该查询是在Oracle v10中设计的,我有资格仅使用选择查询而不创建过程。 问题答案: 我们可以在IN子句中使用乘法列:

  • 我现在在大学学习数据库,在我的项目中,我有3个表:、和 联赛(leagueId,leagueName) 团队(teamId,teamName) 具有(leagueId,teamId,year)

  • 我在用Cassandra存储股票信息。每个“行”都有一些基字段,如:时间、价格、关闭、打开、低、高等。在这些字段的顶部,我有一个浮动类型的值列表,其中包含一些内部系统计算。 对象的示例:

  • 问题内容: 可以构造SQL来连接多行中的列值吗? 以下是一个示例: 表A 表B SQL的输出应为- 因此,基本上,输出表的Desc列是表B的SEQ值的串联? 对SQL有帮助吗? 问题答案: 有几种方法取决于您使用的版本-请参见有关字符串聚合技术的oracle文档。一种很常见的用法是: 然后加入以挑选您想要的。 注意: 开箱即用,仅适用于列。

  • 是否有任何方法可以在一次调用中使用NamedParameterJdbcTemplate执行多个查询?