【问题标题】:MYSQL Variable using SET results in Discrepancies in behavior [closed]使用 SET 的 MYSQL 变量导致行为差异[关闭]
【发布时间】:2023-03-21 12:59:01
【问题描述】:

为什么使用 SET 设置变量时,在某些情况下一个语句可以设置多个变量,而在其他情况下需要发出两个单独的变量。

例如,这可以正常工作:

SET
@uname := 'John',
@acct_trade := 218.01,
@acct_labor := 518.01,
@acct_cntgy := 818.01;

只使用一个分号。

但是当它是这样的时候:

SET @datestart := '2012-01-01',
SET @dateend :=  '2012-02-29';

它不起作用。我必须让它们各自独立。

SET @datestart := '2012-01-01';
SET @dateend :=  '2012-02-29';

我假设这与它要求 2 个字符串的事实有关。我什至尝试将它投射到日期。

有什么想法吗?

【问题讨论】:

  • 如果newfurniturey的回答解决了你的问题,你可以接受..

标签: mysql variables set session-variables


【解决方案1】:

在失败的示例中,您有两次 SET 关键字。如果你从第二行删除它应该可以工作:

SET
@datestart := '2012-01-01',
@dateend :=  '2012-02-29';

这是因为SET 关键字充当完整的语句直到结束分号。当它碰到另一个 SET 关键字时,它是无效的语法。

【讨论】:

  • 哈哈。哇谢谢。我不敢相信我错过了……我在这里坐了将近 2 个小时,试图弄清楚为什么它不起作用……第二双眼睛……非常感谢。
  • @user1704251 没问题,很高兴我能帮上忙 =]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-08
  • 1970-01-01
  • 1970-01-01
  • 2019-07-19
  • 2016-06-27
相关资源
最近更新 更多