什么是在SQL中使用问号

时间:2011-01-23 12:31:05

标签: sql

我只是在网上冲浪,发现了一个类似的问题:

sql  = "select milk_rate from special_milk_rate 
        where code_producer_id=? and effective_from <= ? 
        and effective_till >= ?"

这个查询究竟意味着什么意味着什么是使用?在这个声明中。

还有一个更重要的是&amp;在sql。

6 个答案:

答案 0 :(得分:9)

这通常意味着准备好的语句,其中的参数将在以后填写。 (参见例如http://en.wikipedia.org/wiki/Prepared_statements#Parameterized_statements)。

答案 1 :(得分:2)

  

这个查询究竟意味着什么意味着什么是使用?在这个声明中。

问号是针对参数的。

  

还有一个更重要的是&amp;在sql。

&安培;是sql中的按位AND运算符

答案 2 :(得分:1)

在准备好的语句中找到问号,这意味着它是参数化的,并且可以一次又一次地调用,而无需通过更改参数来重建整个sql语句。一些框架使用与SqlCommands一起使用的框架。那些封装转义并防止sql注入攻击。

某些框架也允许命名参数。

答案 3 :(得分:1)

问号应该包含实际参数。

E.g。

"select milk_rate from special_milk_rate 
        where code_producer_id=2 and effective_from <= '20101231' 
        and effective_till >= '20110124'"

答案 4 :(得分:1)

这是一篇很好的文章:

http://publib.boulder.ibm.com/infocenter/idshelp/v10/topic/com.ibm.sqls.doc/sqls610.htm#sii-02prep-18104

  

在某些陈述中,参数是   准备声明时未知   因为可以有不同的值   每次声明都插入   执行。在这些陈述中,您可以   使用问号(?)占位符   必须提供参数的地方   当语句执行时。

答案 5 :(得分:1)

&安培;通常表示在运行时可能会提示您输入的变量或替换值