我在把一些数据加载到Linux上的MySQL时遇到了一些问题。我使用LOAD DATA LOCAL INFILE。我可以在Mac上很好地做到这一点,特别是通过MySQL命令行和带有SQL查询的php脚本。
当我在linux上时,这个问题出现了,似乎由于安全问题,每个都禁用了本地加载数据。为了解决这个问题,他们给出了一些可能的解决方法,比如在启动MySQL时使用--local-infile[=1],但是如果我使用MySQL,我应该怎么做呢?
具体地说,在命令行中,我得到了以下错误:
ERROR 1148 (42000): The used command is not allowed with
当查询包含union all时,我只遇到了一个有趣的order子句行为。
例如,我有以下查询:
select * from dual order by 1
union all
select * from dual
失败了,怎么回事?
好吧,看来甲骨文只是不喜欢order by,其次是union all。让我们将查询重写到以下内容:
select * from (select * from dual order by 1)
union all
select * from dual
已经修好了!
如果我只交换两个查询(其中一个查询与order by ),那么它也能工作:
select * from