我需要为MySQL数据库运行一些脚本。而且我每次运行查询时都需要调整查询中的值。但是,我需要在两个不同的地方指定相同的值。我不想意外地保留一个值不变。有没有办法在脚本中将值指定为常量?我只有数据库读取权限。我无法通过搜索找到信息。谢谢。

最佳答案

您可以使用MySQL @variables或通过简单的select语句作为第一个表来执行所需的操作,并且不使用ON子句进行连接(因此使用交叉联接),但是只有1条记录的笛卡尔结果将永远不会创建重复项。然后,您可以始终使用该列。例如...

select
   from
      ( select @someNumber := 123,
               @someDate := '2017-07-23' ) sqlVars,
      OtherTable OT
   where
          OT.SomeNumberField = @someNumber
      OR  OT.OtherDateField = @someDate


但是您可能可以做类似列的操作,例如

select
   from
      ( select 123 as someNumber,
               '2017-07-23' as someDate ) sqlVars,
      OtherTable OT
   where
          OT.SomeNumberField = sqlVars.someNumber
      OR  OT.OtherDateField = sqlVars.someDate


当然,到多个表的标准联接,左联接等都应该能够以表的任何一种方式看到列,因此表在列表的下游都是可见的。

关于mysql - 如何在MySQL查询中定义常量值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45271522/

10-11 05:14