Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在“中使用字符串值”;在;在Informix中_Sql_Informix - Fatal编程技术网

Sql 在“中使用字符串值”;在;在Informix中

Sql 在“中使用字符串值”;在;在Informix中,sql,informix,Sql,Informix,在Informix的数据库表中,我有如下列: 表名为MYTABLE 键1234 值'POCO'、'LOCD',MACD' 现在我想在这样的查询中使用它 select * from table where symbol in (select value from MYTABLE where key='1234'); 但此查询不起作用,因为值存储为char和 select value from MYTABLE的输出,其中key='1234'类似 "'POCO','LOCD',MACD'" 有没有

在Informix的数据库表中,我有如下列:

表名为
MYTABLE

1234

'POCO'、'LOCD',MACD'

现在我想在这样的查询中使用它

select * from table where symbol in (select value from MYTABLE where key='1234');
但此查询不起作用,因为值存储为char和

select value from MYTABLE的输出,其中key='1234'
类似

"'POCO','LOCD',MACD'"
有没有办法让这一切顺利进行。我想在一个查询中实现这一点


请建议一个更好的方法。

你不能像那样插值。不能期望数据库优化人员知道
value
将返回一个类似于列表的字符串,该字符串将在列表上下文中进行解释

既然你要求更好的方法

这种设计打破了关于数据库应该如何构造的许多基本规则。“值”列至少应为
集合
数据类型,以便正确阐明其作为值列表的作用。我个人会创建一个标准的关系桥接表:

MYTABLE
key  col1 col2
1234 ..   .. 

MYVALUE
key  value
1234 POCO
1234 LOCD
1234 MACD

这不是其他人建议的简单方法,但它是正确的答案。

这是一个糟糕的设计-为什么不让
MYTABLE
为每个
键包含多行,其中存储的值是您感兴趣的单独值?那么它将完全按照你写的那样工作。(其他未来的查询可能也会受益)是的,我知道它不是gud设计,但这是由其他人设计的。所以“MyTable”实际上不是您的表,而是其他人的表?有一个很好的理由让你讨厌任何东西的“我的”前缀。它假设单个用户完全不适当地使用。Hmmm。另一个有self-join和LIKE子句的答案现在似乎消失了。