【问题标题】:Trying to get this SQL query to run on phpmyadmin mysql but it doesnt work试图让这个 SQL 查询在 phpmyadmin mysql 上运行,但它不起作用
【发布时间】:2014-02-12 20:34:55
【问题描述】:

这是我将在 Access 中运行的查询:

SELECT FMZ_FormDetActivity.*
FROM FMZ_FormDetActivity
WHERE (((FMZ_FormDetActivity.CUST_DIV)="10") AND    
    ((FMZ_FormDetActivity.ACTIVITY_DATE)>#12/31/2012#));

当我尝试在 phpMyAdmin 上运行它时,会出现以下错误:

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 5 行的 'LIMIT 0, 30' 附近使用正确的语法

SELECT FMZ_FormDetActivity . * 
FROM FMZ_FormDetActivity
WHERE (
   (
      (
           FMZ_FormDetActivity.CUST_DIV
      ) =  "10"
   )
   AND (
     (
         FMZ_FormDetActivity.ACTIVITY_DATE
      ) > #12/31/2012#));
LIMIT 0 , 30

【问题讨论】:

    标签: mysql sql phpmyadmin


    【解决方案1】:

    去掉分号和一些引号。同时更改日期字符串。

    SELECT FMZ_FormDetActivity.* 
       FROM FMZ_FormDetActivity 
       WHERE  FMZ_FormDetActivity.CUST_DIV  =  10 AND  
              FMZ_FormDetActivity.ACTIVITY_DATE  > '2012-12-31' 
     LIMIT 0 , 30
    

    【讨论】:

      【解决方案2】:

      MySQL 和 Access 的语法截然不同。

      但是,您的错误的主要原因是 phpMyAdmin 在“;”之后插入了“LIMIT 0,30”语句终止符。我会删除整个最后一部分(“; LIMIT 0, 30”)。

      其次,在 MySQL 中绝对行不通的一件事是 #12/31/2012#... 将“#”符号替换为单引号 (') 以读取 '12/31/2012'。

      该 SQL 语句中可能还有其他错误,但请先尝试。

      【讨论】:

        【解决方案3】:
        #1064 - You have an error in your SQL syntax; check the manual that corresponds 
        to your MySQL server version for the right syntax to use near 'LIMIT 0, 30' at line 5
        

        这立即告诉我您在第 4 行或第 5 行有问题。由于我之前使用过 phpMyAdmin,我知道它喜欢在查询末尾添加类似于 LIMIT 0 , 30 的内容。如果您在此行之前终止查询,则原始查询中不会包含该行。这将导致它单独执行LIMIT 0 , 30,并且由于这不是正确的SQL语句,它不知道如何处理它!

        干杯

        【讨论】:

          猜你喜欢
          • 2014-07-21
          • 2017-10-04
          • 1970-01-01
          • 2015-01-30
          • 1970-01-01
          • 1970-01-01
          • 2018-12-19
          • 2017-09-14
          • 1970-01-01
          相关资源
          最近更新 更多