回答
如果发现满足下面的解决方案。它基于编译器优化,如果表达式的结果只能返回一行,则使用常量替换表,请参阅MySQL Manual。例如,在指定唯一非空列的值时就是这种情况。
如果你有一些常量,并且不想为每个函数创建一个函数,这就特别有意义。作为奖励,您可以通过使用某个前端方便地编辑常量值(如果它们用于某些配置目的,而不一定需要更改pi),而不是重新定义函数。转移数据库可能也更容易,因为转储表比转储功能更容易。
CREATE TABLE `constant` (
`id` varchar(45) NOT NULL,
`double_value` DOUBLE DEFAULT NULL,
PRIMARY KEY (`id`)
);
INSERT INTO constant VALUE ('pi', 3.1415);
SELECT constant.double_value/4 FROM constant WHERE constant.id = 'pi';
-- is translated into SELECT 3.1415/4
SELECT table1.field1/constant.double_value
FROM table1, constant
WHERE constant.id = 'pi';
-- is translated into SELECT table1.field1/3.1415 FROM table1
这里SOM functions in mathematik
和u可以定义这样的
SET @myVar = 3;
编辑这里的这个
set @var1 := 0;
set @var2 := @var1 := 5;
select @var1, @var2;
+--------+--------+
| @var1 | @var2 |
+--------+--------+
| 5 | 5 |
+--------+--------+
为例常数这里SOM examples
但是我能否在我的所有程序中使用我的var? –
用一些例子编辑。 –
我遇到了这个话题,寻找同一个问题的答案。我的搜索还发现“如何定义可用于多个过程的常量?”在https://forums.mysql.com/read.php?98,273432,274722#msg-274722和“带有常量的存储过程”,位于https://forums.mysql.com/read.php?98655459 ,655471#MSG-655471。虽然不太理想,但我计划将我的实现变量作为局部变量,名称用大写字母表示,这在C和C++中是常见的做法。 –
老阙但由于我现在正在研究这个问题,我自己在这里是我的两分钱:
据我所知,没有用户可定义常量这样的事情。但是你可以创建一个函数并让它返回你想要的值:
CREATE FUNCTION `kMyConstant`()
NO SQL
DETERMINISTIC
RETURNS TINYINT UNSIGNED
BEGIN
RETURN 0;
END
这显然每次都会返回0。我相当肯定,相比于在代码中加入0,它会非常低效,但它仍然会在非常小的一秒(每次)中运行。
被警告说,如果放像的查询:update myTable set myVariable = kMyConstant();
有两种可能的结果的性能代价:
- 通过将确定性的定义,参数不每行改变它只会评估一次。
- MySQL优化器不是那么聪明。
抛开性能问题,至少你可以在整个代码中分散kMyConstant(),并知道它始终是相同的值,并且如果你想改变返回的值,只需更改函数即可。
PS。如果它确实经常重新评估它,那么你总是可以开始你的程序set @kMyConstant = kMyConstant();
,然后使用@kMyConstant
,但编码开销不断增加,所以我想你的里程将取决于你将如何以及经常使用这个常量。
- 1. MySQL常量表
- 2. 在Php MySql表中更新常量值无实际值
- 3. 常量指针vs常量值指针
- 4. MySql的异常:变量'character_set_client'不能设置为'utf16'的值
- 5. 由常数量值
- 6. 创建常量值
- 7. 通过变量值获取常量值
- 8. 寻找DAO.Field.Type的常量值
- 9. NSString表示的常量值
- 10. DWM消息的常量值
- 11. Fortran中的常量值
- 12. 常量的值和RVO
- 13. PostgreSQL:smallint最大值的常量?
- 14. Rails中的常量值
- 15. Android的SQL空常量值
- 16. junit的不同常量值
- 17. 保持变量的常量值在常量中
- 18. 用变量的值初始化常量
- 19. 的Python:转换的常量值的常量
- 20. MySQL中的触发器中的常量
- 21. 使用MySQL的SQLAlchemy的语法常量
- 22. 未初始化的常量Mysql的
- 23. AngularJS使用值的值(常量)
- 24. 如何优化MySQL的常量查询?
- 25. 未初始化的常量Mysql :: error
- 26. 如何在MySQL中指定一个常量值来显示?
- 27. 如何将常量的值用作常量?
- 28. 对象常量的常量作为键(在密钥值对)
- 29. 奇怪的MySQL AVG()异常NULL值
- 30. 最常见的值子查询MySql
仅供参考,['PI()'](http://dev.mysql.com/doc/refman/5。0/en // mathematical-functions.html#function_pi)将返回PI。 – h2ooooooo
@ h2ooooooo,这只是一个例子,我希望声明自己的constants –