MySQL 3.23 UNION失败,错误1064

时间:2012-02-08 22:43:35

标签: mysql mysql-error-1064

我正在尝试在运行MySQL 3.23的旧BugZilla MySQL数据库中使用UNION语句。这是我想要做的简化版本。它真的没什么异国情调,但MySQL一直说有些不对劲。

(select bug_id,rep_platform from bugs where rep_platform='XX') 
 UNION 
(select bug_id,rep_platform from bugs where rep_platform='YY');

我得到的结果是:

ERROR 1064 (HY000): You have an error in your SQL syntax near '(select bug_id,rep_platform from bugs where rep_platform='XX')
UNION
(select bu' at line 1

这就像你能得到的联合声明一样简单。有什么想法吗?

编辑:我在MySQL 5 DB上运行了一个非常类似的查询,它运行得很好。这些在MySQL 3上的特殊UNION语法是不是出现在文档或Google搜索中?

3 个答案:

答案 0 :(得分:3)

为什么不这样做呢:

SELECT DISTINCT bug_id, rep_platform
    FROM bugs
    WHERE rep_platform IN ('XX', 'YY');

答案 1 :(得分:0)

我认为你的意思是

select bug_id,rep_platform from bugs A where rep_platform='XX'
UNION  
select bug_id,rep_platform from bugs where rep_platform='YY'; 

Joe的回答更轻松,更令人愉悦。乔为+1。

我做的两个改变是

  1. 我放弃了所有的括号
  2. 我在第一个SELECT
  3. 中的bug旁边放了一个表别名A.

答案 2 :(得分:0)

UNION不在MySQL 3中工作的原因是因为MySQL 3不支持UNION语句:)看一下官方documentation

  

UNION用于将多个SELECT语句的结果合并到一个结果集中。 UNION可从MySQL 4.0.0开始使用。

请查看此article以获取解决方法。