MySql const值

Ily*_*man 6 mysql const

我正在数据库中进行一些数学运算,我想声明所有过程都知道的const值(例如PI)

MySql中有类似的东西吗?

ech*_*_Me 5

这里有数学中的函数

你可以定义这样的常量

 SET @myVar = 3;
Run Code Online (Sandbox Code Playgroud)

这里编辑一个例子

   set @var1 := 0;
   set @var2 := @var1 := 5;
   select @var1, @var2;
    +--------+--------+
    | @var1 | @var2 |
    +--------+--------+
    | 5      | 5      | 
    +--------+--------+
Run Code Online (Sandbox Code Playgroud)

这里有一些例子


cw'*_*cw' 3

如果发现以下解决方案令人满意。它基于编译器优化,如果表达式的结果只能返回一行,则用常量替换表,请参阅MySQL 手册。例如,指定唯一的非空列的值时就是这种情况。

\n\n

如果您有一些常量并且不想为每个常量创建一个函数,那么这尤其有意义。作为奖励,您可以通过使用一些前端 \xe2\x80\x93 而不是重新定义函数来方便地编辑常量值(如果它们用于某些配置目的,则不一定要更改 pi)。传输数据库也可能更容易,因为转储表比转储函数更容易。

\n\n
CREATE TABLE `constant` (\n  `id` varchar(45) NOT NULL,\n  `double_value` DOUBLE DEFAULT NULL,\n  PRIMARY KEY (`id`)\n);\n\nINSERT INTO constant VALUE (\'pi\', 3.1415);\n\nSELECT constant.double_value / 4 FROM constant WHERE constant.id = \'pi\';\n-- is translated into SELECT 3.1415 / 4 \n\nSELECT table1.field1 / constant.double_value \n  FROM table1, constant \n  WHERE constant.id = \'pi\';\n-- is translated into SELECT table1.field1 / 3.1415 FROM table1\n
Run Code Online (Sandbox Code Playgroud)\n