SQLSTATE [42000]:语法错误或访问冲突:sql select语句中的1064

时间:2016-09-11 13:59:37

标签: mysql mysql-error-1064

我刚开始学习PHP。我正在尝试做一个非常简单的sql select语句 -

<?php
    $sql = 'SELECT firstname, lastname,email
           FROM MyGuests
          ORDER BY firstname where id=12';
?>

它出现以下错误 -

  

无法连接到数据库testdb:SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;

对不起,如果这是一个愚蠢的问题。

3 个答案:

答案 0 :(得分:2)

切换ORDER BYWHERE子句:

SELECT firstname,
       lastname,
       email
FROM MyGuests
WHERE id = 12
ORDER BY firstname

这是一个有用的Stack Overflow问题,它列出了MySQL语句的解释顺序:

MySQL query / clause execution order

答案 1 :(得分:1)

您的查询顺序错误,order by需要在where之后。

SELECT firstname, lastname,email
           FROM MyGuests
          where id=12
ORDER BY firstname

您可以在手册中查看所有功能的订单http://dev.mysql.com/doc/refman/5.7/en/select.html

答案 2 :(得分:1)

你的语法错误..

SELECT..
FROM..
WHERE..
GROUP BY..
ORDER BY ..

所以:

SELECT firstname, lastname,email
FROM MyGuests
where id=12
ORDER BY firstname