为什么MySQL要求参数按特定顺序排列?
我和这两个人搏斗了一段时间:为什么MySQL要求参数按特定顺序排列?,mysql,sql,syntax,Mysql,Sql,Syntax,我和这两个人搏斗了一段时间: 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 '!'; 为什么不呢?意思不一样吗?这背后的理由是什么?有没有这样
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解析器对可选子句进行可变顺序,因为这并没有真正增加多少价值
归根结底,这与
ls file.txt-a
和file.txt-a ls
不是同一个shell命令的原因是一样的,或者是你不得不使用x=6*(9+2)
而不是C中的x=6 9 2+*
的原因。答案是因为有语法,它有规则。是由MySQL来定义语法规则的。当然,我在问这背后的理由是什么。可能是因为同样的原因定义了查询顺序<代码>选择。。。从…起哪里分组依据…工作,但选择。。。从…起分组方式。。。其中
没有。当然,读起来它们的意思是一样的。但是编译器不希望它按那个顺序运行。这就是语言语法的定义。有些东西没有理由被任意重新排序。这就是其中之一+1.