![]() |
1
19
考虑到更新后的问题,这些是最简单的形式:
如果
然后检查结果
如果
当问题被认为需要返回行时
或
如果你真的打算对结果做些什么的话。否则简单
|
![]() |
2
11
@马克·赫德,谢谢你指出了错误。 这将有效(如果您使用的是PostgreSQL,SQL Server 2008):
如果您使用的是MySQL,请创建一个临时内存表(然后在其中填充1,10100):
在您的C代码上:
[编辑]
关于,如果所有行都存在,则返回一行(单数),以及 无行 如果一个或多个产品ID不存在,则返回: MySql:
posgresql,SQL Server 2008:
然后在您的C代码上:
或者只是缩短条件:
|
![]() |
3
8
我通常是这样做的:
只是
代替
您对此语句的查询
|
![]() |
4
1
|
![]() |
5
0
|
![]() |
6
0
如果in子句是一个参数(对于sp或热构建SQL),则始终可以这样做:
如果IN子句是一个表,则始终可以这样做:
如果in子句很复杂,那么要么将其spool到表中,要么将其写入两次。 |
![]() |
7
0
如果您将ID存储在一个临时表中(可以通过一些C函数或简单的SQL来完成),那么问题在SQL中就变得简单可行。
当所有产品
如果您不想写入临时表,那么您需要输入一些参数来表示您要查找的产品数量,并将临时表替换为“in”;子句,这样子查询如下所示:
|
![]() |
8
0
如果您使用的是SQL Server 2008,我将创建一个存储过程, a table-valued parameter . 然后,查询的形式应该特别简单:
我把这个改成返回一行,正如你所要求的。有其他方法可以使用不存在的(此处的左联接,rhs为空)执行此操作:
|
![]() |
9
0
您的C只需做一点工作(计算传入的ID数),但请尝试:
编辑: 4绝对可以参数化,整数列表也可以。 如果您不从用户输入的字符串中生成SQL,则不需要担心攻击。如果你是,你只需要确保你只得到整数。例如,如果你输入字符串“1,2,3,4”,你会做类似的事情
如果你得到错误的东西,那会扔。然后将其设置为一个参数。
另外,如果项,请务必使用特殊情况。count==0,因为如果发送,数据库将阻塞。
|
![]() |
10
0
你试图确定产品存在的列表在哪里?如果该列表存在于另一个表中,则可以执行此操作
编辑: 然后用C语言完成所有的工作。将应用程序中的实际产品列表缓存到某个地方,并执行LINQ查询。
这可以防止手工构造SQL查询,并在应用程序中保留所有应用程序逻辑。 |
![]() |
11
0
我知道这是旧的,但我认为这将帮助任何人谁来找…
如果存在,则返回true;如果不存在,则返回false(与没有行相反)。 |
![]() |
12
-1
假设您使用的是SQL Server,则布尔类型不存在,但位类型存在,它只能容纳0或1,其中0表示假,1表示真。 我要走这条路:
在这里,将返回一个空或无行(如果不存在行)。 甚至:
在这里,将始终返回标量值1或0(如果不存在行)。 |
![]() |
13
-1
这可能太简单了,但我总是使用:
|
![]() |
Deadpool · 未返回正确值但未定义的函数的类型 6 年前 |
![]() |
jeangelj · Python panda根据其他列中的条件覆盖值 6 年前 |
![]() |
whalesboy · 基于结果连接表(查询后) 6 年前 |
![]() |
Tania MartÃnez · <a>展开时标记会打断样式 6 年前 |
![]() |
alofgran mrry · 有条件替换NaN 6 年前 |