重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在使用mysql是在navicat中查询一条简单语句使用了 select * from table 虽然查询成功了,但是报了
十多年的溧阳网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整溧阳建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“溧阳网站设计”,“溧阳网站推广”以来,每个客户项目都认真落实执行。
[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 错误.
在MySQL5.7之后,sql_mode中默认存在ONLY_FULL_GROUP_BY,SQL语句未通过ONLY_FULL_GROUP_BY语义检查所以报错。
ONLY_FULL_GROUP_BY模式要求select语句中查询出来的列必须是明确的(其他语句也是一样)。
以SQL语句 select columes from table group by list 为例:columns必须是聚集函数或者在group by后的表达式list中,并且list中必须包含主键,否则也会报错。
insert、update、delete语句都会报错(但不影响SQL语句的执行),因为这三种语句执行之前也会执行查询操作。
以主键为id的表为例:
执行sql语句使sql_mode的模式去掉ONLY_FULL_GROUP_BY,但是重启服务会失效
注意: 在ubuntu 18中的mysql配置文件需要修改 mysqld.cnf , 其他系统的其他mysql版本需要根据特定情况查找需要修改的配置文件,如:windows中一般是 my.ini ,linux中可能是 my.cnf
在[mysqld]下面增加如下内容
验证: 再次在navicat中 select * from table 查询,已没有错误.
1、首先打开mysql,查看错误1007不执行该语句。
2、其次将其删除,重新执行一下上述SQL。
3、最后重新启动即可解决错误问题。
mysql报错synaxerroratornearregex该按照以下步骤操作。
1、可以修改SQL语句,在表的名字加上,位于tab键上面的英文引号。
2、修改表的名称,在表命名的时候,尽量用上前缀,防止这种错误。
3、检查sql语句书写是否规范。可以把SQL语句复制到客户端看一看是否正确,排查错误。
错误示范,username字段是varchar类型,而变量解析之后由于不带单引号,嗯,不知道变成什么鬼了,在PHP里面一般仍然可以当成字符串用,但是执行sql语句就不行了。
正确示范,变量$username,执行sql语句还必须解析完了之后再主动跟他加一个单引号。
下面跟问题基本没有关系了