我已经看到一些(我的)sql查询这样编写:
SELECT ? + 4;
?
的含义是什么?我的猜测是它是某种参数,但是如何指定它的值呢?
答案 0 :(得分:8)
?
是syntax for prepared statements中参数值的占位符。链接的文章给出了以下示例:
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 article以便进一步阅读MySQL。
答案 1 :(得分:3)
在mysql中,?
是prepared statement中的占位符。在执行语句之前,它将被客户端绑定的任何值替换。