SQL查询 - 列出字段

时间:2011-10-26 19:48:23

标签: sql sqlite list comma

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

  

id / to / status
  1 /史蒂夫,吉米/ 0,2
  2 / john,julia / 1,2
  3 / julia,peggy / 0,1

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

在这个简单的例子中,这是行n°3。

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

P.S。 :我正在使用SQLite。

1 个答案:

答案 0 :(得分:5)

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

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

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