3

我见过一些(我的)sql查询是这样写的:

SELECT ? + 4;

是什么意思??我的猜测是它是某种参数,但是如何指定它的值呢?

4

2 回答 2

8

?是准备好的语句语法中参数值的占位符。链接的文章给出了以下示例:

mysql> PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';
mysql> SET @a = 3;
mysql> SET @b = 4;
mysql> EXECUTE stmt1 USING @a, @b;
+------------+
| hypotenuse |
+------------+
|          5 |
+------------+
mysql> DEALLOCATE PREPARE stmt1;

由于您还标记了,因此值得链接到Prepared Statement Wikipedia 文章,以便独立于 MySQL 进一步阅读。

于 2013-01-20T00:12:14.420 回答
3

在 mysql 中,a是准备好的语句?中的占位符。在执行语句之前,它将被客户端绑定的任何值替换。

于 2013-01-20T00:11:56.333 回答