尝试像
这样的事情
SELECT CAST('1foo' AS UNSIGNED)
我在字符串到整数转换中观察到以下模式:
- 只有前导数字和可能的前导符号是相关的。之后的所有字符都将被忽略。如果没有符号,则在符号前或第一个数字前允许前导空格,但在符号和数字之间不允许。
- 空字符串转换为0,与NULL不同,后者转换为NULL。结合前面的规则,这意味着任何不以数字,+数字或-digit开头的字符串都会转换为0。
醇>
我不喜欢通过实验发现这些基本规则,而且我找不到任何证实它们的文档。它是可靠的行为,还是故意没有记录,因为它可能会在版本之间发生变化?