1052 - Column 'id' in where clause is ambiguous
发表于|更新于|🤢奇奇怪怪的BUG
MySQL报错 1052 - Column 'id' in where clause is ambiguous
,这里记录以下错误原因
- 多进行多表关联的时候,很多个表如何出现相同的列表,但是你没有指明是哪个表的时候 MySQL 就会报此错误(我就是这个原因,太大意了😷)
- 在查询结果有相同的列名,但是你没有指出是哪个表,就会出现这个错误,其实本质上是一个原因只不过一个在 WHERE 条件中一个在 SELECT 中,一样的是都需要明确指出是哪个表的哪个字段
相关推荐
2023-03-08
MySQL 8.0的新特性-全局变量的持久化
在 MySQL 数据库中,全局变量可以通过 SET GLOBAL 变量来设置。例如,设置服务器语句超时的限制,可以通过设置系统变量 max_execution_time 来实现: 1SET GLOBAL MAX_EXECUTION_TIME = 2000; 使用 SET GLOBAL 语句设置的变量值只会临时生效。数据库重启后,服务器又会从 MySQL 匹配文件中读取变量的默认值。MySQL 8.0 版本增加了 SET PERSIST 命令。例如设置服务器最大连接数为1000: 1SET PERSIST GLOBAL max_connections = 1000; MySQL 会将该命令的配置保存到数据目录下的 mysqlId-auto.cnf 文件中,下次启动时会读取该文件来覆盖默认的配置文件。注意:这个特性对于MAC用户来说很有用,MAC 下的 MySQL 是没有配置文件的,如果想要永久更改配置只能是自己新建一个配置文件,但是我觉得太麻烦了,现在只需要一行命令就可以永久的更改配置真的方便了很多!PERSIST 命令必须要以命名行的形式执行,亲测在 Navicat...
2023-11-18
MySQL 中的取整函数
今天在写代码的时候遇到了一个取整问题在此记录一下 ROUNDMySQL ROUND() 函数用于将数字四舍五入到指定的小数位数 1ROUND(number, decimals) 其中,number 是要舍入的数字,decimals 是要保留的小数位数。例如,将数字 3.14159265358979323846 舍入到小数点后两位,可以使用以下查询: 1SELECT ROUND(3.14159265358979323846, 2); // 3.14 FLOORMySQL FLOOR() 函数用于将数字向下取整到最接近的整数 1FLOOR(number) 其中,number 是要向下取整的数字。例如,将数字 3.99 向下取整到最接近的整数,可以使用以下查询: 1SELECT FLOOR(3.99); // 3 CEILINGMySQL CEILING() 函数用于将数字向上取整到最接近的整数 1CEILING(number) 其中,number 是要向上取整的数字。例如,将数字 3.01 向上取整到最接近的整数,可以使用以下查询: 1SELECT CEILING(3.01);...
2023-03-23
MySQL(三)
...
2023-03-02
Mysql(二)
约束数据完整性是指数据的精确性和可靠性。它是防止数据中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。为了保证数据的完整性,SQL规范以约束的方式对表数据进行额外的条件限制,从以下四个方面考虑: 实体完整性:例如,同一个表中,不能存在两条完全相同无法区分的记录 域完整性:例如,年龄范围0 - 120,性别范围男 / 女 引用完整性:例如,员工所在部门,在部分表中要能找到这个部门 用户自定义完整性:例如,用户名唯一,密码不能为空等,本部分经理的工资不得高于本部门职工的平均工资的5倍 非空约束限定某个字段 / 某列的值不允许为空。关键字:NOT NULL。默认所有的类型的值都可以是NULL,包括INT,FLOAT等数据类型;非空约束只能出现在表对象的列上,只能某个列单独限定非空,不能组合非空;一个表可以有很多列都分别限定了非空;空字符串不等于NULl,0也不等于NULL 12ALTER TABLE empMODIFY sex VARCHAR(30) NOT NULL; 唯一性约束用来限制某个字段 /...
2023-02-22
Mysql(一)
碎碎念一入Mysql深似海,只见树叶不见森林😓 关系型数据库关系型数据库是最古老的数据库类型,关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。关系型数据库以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表,一组表则成了一个库。表于表之间的数据记录有关系。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。关系型数据库,就是建立在关系模型基础上的数据库 复杂查询: 可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询 事物支持:...
2022-10-21
mysql 中 sql_mode 的修改
mysql 中 sql_mode 的修改 很多时候修改 sql_mode 是因为插入或者修改空日期失败 只要 sql_mode 中的两个属性删除就可以了 NO_ZERO_DATE(设置该值,mysql 数据库不允许插入零日期,插入零日期会抛出错误而不是警告) NO_ZERO_IN_DATE(在严格模式下,不允许日期和月份为零) 查询 sql_mode12select @@GLOBAL.sql_mode -- 修改于当前服务,重新MySQL服务失效 select @@SESSION.sql_mode -- 修改于当前会话,关闭当前会话会失效 设置 sql_mode把刚刚查询出来的 sql_mode 找到 NO_ZERO_DATE 和 NO_ZERO_IN_DATE 删除后粘贴到设置命令上 12SET GLOBAL sql_mode = 'modes...';SET SESSION sql_mode = 'modes...'; 永久生效方法在 mysql 的安装目录下,打开 my.cnf 文件(windows 系统是 my.ini...
评论