Php 使用Distinct时查询失败
当我将Php 使用Distinct时查询失败,php,mysql,sql,select,distinct,Php,Mysql,Sql,Select,Distinct,当我将DISTINCT放在运算符列上时,我的查询停止工作。当我删除DISTINCT时,我的查询工作正常 $resource= $con->query("SELECT date,factory,DISTINCT(operator)as operator,FROM Myfactories where factory='$login_session' AND Year='2017' "); 像这样试试 $change="where factory='$login_session' AND Y
DISTINCT
放在运算符列上时,我的查询停止工作。当我删除DISTINCT
时,我的查询工作正常
$resource= $con->query("SELECT date,factory,DISTINCT(operator)as operator,FROM
Myfactories where factory='$login_session' AND Year='2017' ");
像这样试试
$change="where factory='$login_session' AND Year='2017'";
$resource= $con->query("SELECT DISTINCT operator, date, factory FROM Myfactories $change")
如果直接在数据库中运行查询或使用mysqli_error(),您将看到:
#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 'DISTINCT(operator) as operator, FROM Myfactories
这肯定会证实你或多或少知道的
然后,通过访问以下站点,您自然会查看MYSQL文档以了解不同的规范:
14.2.9选择语法
[ALL | DISTINCT | DISTINCTROW ]
[HIGH_PRIORITY]
[STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
select_expr [, select_expr ...]
[FROM table_references
这意味着所有这些括号内的关键字必须位于任何列表达式之前
在多列上专门介绍SELECT DISTINCT
的其他教程资源包括:
下面是众多youtube视频中的一个,这些视频解释了如何在多个栏目上使用DISTINCT
:
如果这些非堆栈溢出资源中的任何一个仍然没有这样做。
Stackoverflow提供了许多重复的问题,这些问题在某些方面比网络上的任何其他问题都要好
- (这是一篇很好的帖子,因为公认的答案是关于使用
分组方式进行优化的
)
- (这是一篇很好的帖子,因为公认的答案是关于使用
分组方式进行优化的
)
- (谈到分组方式,但并非出于优化目的)
正确调整DISTINCT关键字后,您可能会遇到另一个错误:
#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 'FROM `MyFactories`
纠正此输入错误的方法是仅删除工厂
列和FROM
关键字之间的,
根据SO上其他页面的建议,sql语句应使用以下内容:
SELECT `date`,`factory`,`operator` FROM `Myfactories` WHERE `factory`='$login_session' AND `Year`='2017' GROUP BY `date`,`factory`,`operator`
DISTINCT必须首先出现,并且不需要括号。你们们可能想根据你们们想要完成的任务来审视整个团队<来自
的code>看起来也很麻烦。这个问题的可能重复显示出明显缺乏对错误检查、研究和自我解决的努力。它应该以重复的形式结束,或者以排版的形式结束。老实说,这个问题对于很多新手来说都是很有帮助的,因为它的问题和解决方法简单而直接。大多数在线常见问题解答甚至没有提到操作顺序,当涉及到DISTINCE时,或者如果他们在一个2000行的博客中做了一个小练习。在我看来,这是一个简单的问题,但这可能会让人在一到两个小时的研究中挠头。只有代码的答案对教育作用不大。如果你想窃取我的评论信息,那么至少要努力解释你的答案。(我怀疑这个答案无论如何都不会产生预期的结果集)多亏了大家的努力,我忽略了“区别”必须放在第一位