我和这两个纠缠了一段时间:
LOAD DATA LOCAL INFILE '...' INTO TABLE ...
FIELDS TERMINATED BY '!' LINES TERMINATED BY '\n';
效果很好。什么不起作用,是这样的:
LOAD DATA LOCAL INFILE '...' INTO TABLE ...
LINES TERMINATED BY '\n' FIELDS TERMINATED BY '!';
为什么不呢?意思不一样吗?这背后的原理是什么?是否有更改参数顺序(例如这些)会改变结果的示例?
最佳答案
因为那是 a) 查询引擎的工作方式,以及 b) 因为编写它的人不想经历编码的麻烦,以允许使用 SQL 解析器可变顺序的可选子句,因为那不会' 确实增加了很多值(value)。
最终,这也是 ls file.txt -a
和 file.txt -a ls
不是相同 shell 命令的原因,或者你必须这样做的原因在 C 中使用 x = 6 * (9 + 2)
而不是 x = 6 9 2 + *
。答案是因为有语法并且有规则。
关于mysql - 为什么 MySQL 要求参数按特定顺序排列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38248822/