【发布时间】:2009-12-09 04:41:27
【问题描述】:
如果我有这样的查询
SELECT * FROM table1 WHERE col1 IN ({SUBS})
我可以用什么来替换 {SUBS} 以返回表中的所有行吗?
更多细节:
我正在我的应用程序中动态构建 SQL,因此我不能(不应该)编辑查询的其他部分,除了大括号中的内容。所以,
SELECT * FROM table1
不会。
还有,
SELECT * FROM table1 WHERE col1 IN (SELECT col1 FROM table1)
会很老套而且效率很低。假设该表有超过 50k 行。
【问题讨论】:
-
我知道这不是问题,但我不得不问:你只是想获取所有行吗?如果是这样,只需去掉“WHERE col1 IN ({SUBS})”部分即可。
-
有人告诉我一次 - 没有愚蠢的问题......
-
听起来好像有人在给我构建动态 sql...
-
"...效率会非常低。考虑表有超过 50k 行。"你说你想检索所有 50k 行。我认为效率有点争议。