使用 concat 和 union 的 MySQL 查询不起作用

标签 mysql union concatenation

大家好,我正在尝试将记录列表放入一个表中,以用于我为网站所做的搜索功能

这3张表一张是页面信息,一张是项目,一张是最新消息。

但是我在查询中遇到错误,我看不出有什么问题。

SELECT 'section' AS colTYPE, title_sec AS title,
CONCAT_WS(' ',contentcol1_sec, contentcol2_sec, contentcol3_sec) AS content, 
active_sec AS active 
    FROM sections_sec 
    WHERE content LIKE 'fff' OR title LIKE 'fff' AND active = 1) 
    UNION(SELECT 'latest' AS colTYPE, title_lat AS title,
    content_lat AS content, active_lat AS active 
    FROM latest_lat
    WHERE content LIKE 'fff' OR title LIKE 'fff' AND active = 1) 
    UNION(SELECT 'project' AS colTYPE, title_prj AS title, 
    content_prj AS content,     active_prj AS active 
    FROM projects_prj 
    WHERE content LIKE 'fff' OR title LIKE 'fff' AND active = 1)

我收到的错误是:

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 ') 
    UNION(SELECT 'latest' AS colTYPE, title_lat AS title, 
content_lat AS conten' at line 3

最佳答案

您的第一个语句没有左括号。对于 UNION

,通常不需要将语句括在括号中

您还确定不想使用 UNION ALL 吗?

SELECT 'section'
           AS colTYPE, 
       title_sec
           AS title, 
       Concat_ws(' ', contentcol1_sec, contentcol2_sec, contentcol3_sec)
           AS content, 
       active_sec
           AS active 
FROM   sections_sec 
WHERE  content LIKE 'fff' 
        OR title LIKE 'fff' 
           AND active = 1 
UNION ALL
SELECT 'latest'    AS colTYPE, 
       title_lat   AS title, 
       content_lat AS content, 
       active_lat  AS active 
FROM   latest_lat 
WHERE  content LIKE 'fff' 
        OR title LIKE 'fff' 
           AND active = 1 
UNION ALL
SELECT 'project'   AS colTYPE, 
       title_prj   AS title, 
       content_prj AS content, 
       active_prj  AS active 
FROM   projects_prj 
WHERE  content LIKE 'fff' 
        OR title LIKE 'fff' 
           AND active = 1 

关于使用 concat 和 union 的 MySQL 查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13808226/

相关文章:

mysql - SQL/PHP - 查找特定项目总和的平均值

sql - Oracle 的棘手 View

c++ - 无法在 C++ 中连接字符串?

bash - 运行 Mysqldump 时如何将错误消息发送到文件?

MYSQL:如果外键不存在,如何在计数外键上返回0

加入多列的 SQL 查询

sql - 使用不同数据集的 UNION ORDER BY (T-SQL)

php - 意外的 T_CONCAT_EQUAL

c - 使用字符串连接的宏

mysql - asp.net网站发布失败