在CAST(AS ASSIGNED)中,如果s包含非数字,我们能保证什么?

时间:2014-10-14 18:35:51

标签: mysql mysql-5.5

尝试像

这样的事情
SELECT CAST('1foo' AS UNSIGNED)

我在字符串到整数转换中观察到以下模式:

  1. 只有前导数字和可能的前导符号是相关的。之后的所有字符都将被忽略。如果没有符号,则在符号前或第一个数字前允许前导空格,但在符号和数字之间不允许。
  2. 空字符串转换为0,与NULL不同,后者转换为NULL。结合前面的规则,这意味着任何不以数字,+数字或-digit开头的字符串都会转换为0。
  3. 我不喜欢通过实验发现这些基本规则,而且我找不到任何证实它们的文档。它是可靠的行为,还是故意没有记录,因为它可能会在版本之间发生变化?

0 个答案:

没有答案