我见过一些(我的)sql查询是这样写的:
SELECT ? + 4;
是什么意思?
?我的猜测是它是某种参数,但是如何指定它的值呢?
?
是准备好的语句语法中参数值的占位符。链接的文章给出了以下示例:
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;
由于您还标记了sql,因此值得链接到Prepared Statement Wikipedia 文章,以便独立于 MySQL 进一步阅读。
在 mysql 中,a是准备好的语句?
中的占位符。在执行语句之前,它将被客户端绑定的任何值替换。