让我们在下表中考虑的玩具例子:SQL查询 - 列表字段
ID /到/状态
1 /史蒂夫,麦/ 0,2
2 /约翰·朱莉娅/ 1, 2
3 /朱莉娅·佩吉/ 0,1
我想在“朱莉娅”是行“到”并在她相应的“状态”为“0”。
在这个简单的例子中,这是第3行。
如何在SQL中编写这样的查询?
P.S. :我正在使用SQLite。
让我们在下表中考虑的玩具例子:SQL查询 - 列表字段
ID /到/状态
1 /史蒂夫,麦/ 0,2
2 /约翰·朱莉娅/ 1, 2
3 /朱莉娅·佩吉/ 0,1
我想在“朱莉娅”是行“到”并在她相应的“状态”为“0”。
在这个简单的例子中,这是第3行。
如何在SQL中编写这样的查询?
P.S. :我正在使用SQLite。
SQLite不包含内置函数来操纵嵌入单列中的逗号分隔列表。其他数据库也可以,但即使它们会在您的需求中遇到一些麻烦,也就是从一个以逗号分隔的字符串中与另一个值的索引相关的逗号分隔字符串获取值。
为此,您将不得不编写一个用户定义的SQLite函数,该函数需要两个列值和两个字符串值,获取第一列中第一个值的索引,从第二列中的同一索引中提取值第二列,并将该值与第二个指定值进行比较。
一般来说,像这样的逗号分隔的字符串在关系型数据库中是不允许的,说实话,我甚至不会尝试在SQL中解决这个问题。如果规范化数据库结构不是一个选项,只需在代码中完成。
+1用于解决真正的隐含问题! –
+1,这是唯一的回答,考虑到了操作者想要的东西,'to'字段和他**相应的**状态' – Lamak
非常感谢Larry! – user1015216
澄清 - 是(1,“steve,jimmy”,“0,2”)第一行? –
''到'列总是有两个名字? – sll
是的,马特。不可以。感谢您的关注。 – user1015216