SQL 查询 - 列出字段

Posted

技术标签:

【中文标题】SQL 查询 - 列出字段【英文标题】:SQL Query - List fields 【发布时间】:2011-10-26 19:48:23 【问题描述】:

让我们将下表视为一个玩具示例:

id/to/状态 1 / 史蒂夫,吉米 / 0,2 2 / 约翰,朱莉娅 / 1,2 3 / 朱莉娅,佩吉 / 0,1

我想获取“Julia”在“to”中的行以及她对应的“status”为“0”的行。

在这个简单的示例中,即第 n°3 行。

如何在 SQL 中编写这样的查询?

附: : 我正在使用 SQLite。

【问题讨论】:

澄清一下——是 `(1, "steve,jimmy", "0,2") 第一行吗? to 列是否总是有两个名称? 是的,马特。不卖。感谢您的关注。 【参考方案1】:

SQLite 不包含用于操作嵌入在单列中的逗号分隔列表的内置函数。其他数据库会这样做,但即使它们也会在您的要求方面遇到一些问题,即从一个逗号分隔字符串中获取一个值,该值与另一个逗号分隔字符串中另一个值的索引相关。

为此,您必须编写一个用户定义的 SQLite 函数,该函数接受两个列值和两个字符串值,获取第一列中第一个值的索引,从第二列中的相同索引中提取值列,并将该值与第二个指定值进行比较。

一般来说,像这样的逗号分隔字符串在关系数据库中是一个禁忌,老实说,我什至不会尝试在 SQL 中解决这个问题。如果规范化数据库结构不是一个选项,只需在代码中进行。

【讨论】:

+1,这是考虑到操作人员想要什么的唯一答案,to 字段和他的对应 status

以上是关于SQL 查询 - 列出字段的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis-Plus select不列出全部字段

SQL查询字段名

常用sql语句总结(查询)

SQL查询语句查询多个数据

VBA(?):将 Microsoft Access 数据库记录到数据集(列出表/字段/带字段的查询)

SQL查询语句之查询数据