当前位置:  开发笔记 > 后端 > 正文

MySQL:"where子句中的列'column_name'是不明确的"

如何解决《MySQL:"where子句中的列'column_name'是不明确的"》经验,为你挑选了1个好方法。

我加入了两张桌子

例如

table_A
+---------+-----------+-----------+
| user_id | ticket_id | user_name |
+---------+-----------+-----------+

table_B
+-----------+-------------+
| ticket_id | ticket_name |
+-----------+-------------+

如果我运行以下查询:

SELECT
  table_A.user_id
, table_A.user_name
, table_B.ticket_name
FROM table_A
LEFT JOIN table_B ON table_B.ticket_id = table_A.ticket_id
WHERE ticket_id = '1';

在实时服务器上,我们收到错误:" Column 'ticket_id' in where clause is ambiguous"
在测试服务器上接受查询.

我知道如何解决错误,这不是问题.

但是,如果我们的测试服务器不接受此查询并且(就像生产服务器那样)抛出错误,我会很高兴.

有没有人知道是否存在某种设置会使测试服务器像实时服务器一样抛出错误?

测试服务器
上的PS MySQL版本:Live服务器 上的MySQL版本:5.0.32-Debian_7etch5-log
5.0.41-community-log



1> kristof..:

MS SQLServer存在类似的问题,其中版本2000接受一些模糊的查询,而2005会引发错误.基本上,较新的版本似乎更严格.

作为一般规则,您应该在测试服务器和生产服务器上使用相同的数据库版本,以避免此类行为,其中一段代码在测试计算机上运行并且在生产时失败.

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有