SQLSTATE [42000]:语法错误或访问冲突:sql select 语句中的 1064
Posted
技术标签:
【中文标题】SQLSTATE [42000]:语法错误或访问冲突:sql select 语句中的 1064【英文标题】:SQLSTATE[42000]: Syntax error or access violation: 1064 in sql select statement 【发布时间】:2016-09-11 13:59:36 【问题描述】:我刚刚开始学习 php。我正在尝试做一个非常简单的 sql select 语句-
<?php
$sql = 'SELECT firstname, lastname,email
FROM MyGuests
ORDER BY firstname where id=12';
?>
它给出了以下错误-
无法连接到数据库 testdb :SQLSTATE[42000]: 语法错误或访问冲突:1064 您的 SQL 语法有错误;
对不起,如果这是一个愚蠢的问题。
【问题讨论】:
WHERE 子句 (WHERE id=12) 应该放在 ORDER BY 之前 @TheOneandOnlyChemistryBlob,将其发布为答案。 @s.k.paul 你已经有三个答案说明了同样的事情(其中两个是在该评论的同一分钟内发布的,所以可能是这样输入的) 【参考方案1】:切换ORDER BY
和WHERE
子句:
SELECT firstname,
lastname,
email
FROM MyGuests
WHERE id = 12
ORDER BY firstname
这是一个有用的 Stack Overflow 问题,它列出了 mysql 语句的解释顺序:
MySQL query / clause execution order
【讨论】:
【参考方案2】:您的查询顺序错误,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。
【讨论】:
【参考方案3】:你的语法错了..
SELECT..
FROM..
WHERE..
GROUP BY..
ORDER BY ..
所以:
SELECT firstname, lastname,email
FROM MyGuests
where id=12
ORDER BY firstname
【讨论】:
以上是关于SQLSTATE [42000]:语法错误或访问冲突:sql select 语句中的 1064的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.8 SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误
SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误 - LARAVEL
Cakephp SQLSTATE [42000]:语法错误或访问冲突:1064
带有消息“SQLSTATE [42000]”的未捕获异常“PDOException”:语法错误或访问冲突: