select id,category,title,font,color,tag,url,`desc`,content,hits,iorder,passed,dateline from t1 where passed=1 and (title like '%三国%' or tag like '%三国%' or `desc` like '%三国%') order by dateline desc limit 0,20
union all
select id,category,title,font,color,tag,url,`desc`,content,hits,iorder,passed,dateline from t2 where passed=1 and (title like '%三国%' or tag like '%三国%' or `desc` like '%三国%') order by dateline desc limit 0,20
(必须保证搜索的两个表的列是相同的,否则会出现错误)
(union会把两个表中搜索出的结果经过计算去除相同的数据再返回的,而union all则不会,所以要比union快)
但出现了错误提示“Incorrect usage of UNION and ORDER BY”。看来不能这么用union和order by,但这里确实是需要order by的。很快,我想到了一个变通的写法:
从经验上说,第二个子句该不会被union影响,可以用order
by。于是把第一个子句包在一个括号里,这下应该就可以了。可是还是有错误,提示“ Every derived table must have
its own alias”。这里的提示是需要给我们括号里面生成的临时表取一个别名,这个好办多了。于是改为:
相关推荐
MySQL中union和order by是可以一起使用的,但是在使用中需要注意一些小问题,下面通过例子来说明。首先看下面的t1表。 1、如果直接用如下sql语句是会报错:Incorrect usage of UNION and ORDER BY。 SELECT * FROM ...
因此,常常出现这样的错误 代码如下:select * from [IND] where INDID>10unionselect * from [IND] where INDID<9>10 order by INDID descunionselect * from [IND] where INDID<9 order by INDID desc此时就出现...
在MySQL中,了解如何正确地使用`UNION`和`ORDER BY`对于编写高效的查询至关重要。此外,熟悉其他数据库系统的行为也很重要,因为不同数据库可能有不同的处理方式。在实际应用中,我们还应该考虑性能因素,因为嵌套...
在MySQL数据库中,`UNION` 和 `UNION ALL` 是两种用于合并多个查询结果集的关键字,它们在处理数据时具有不同的特性和性能影响。 首先,`UNION` 关键字用于合并两个或更多 `SELECT` 查询的结果,并且会自动去除重复...
SELECT * FROM order WHERE status IN (0, 1) ORDER BY date DESC; ``` 此查询可以利用`status`和`date`的索引来提高效率,特别是如果这两个字段都有索引的话。 4. **组合条件查询**: ``` SELECT * FROM ...
在MySQL中,`UNION ALL` 用于合并多个`SELECT`语句的结果集,而这里的重点是如何在合并结果后进行排序。在给定的场景中,我们有一个文章数据表,其中文章的状态通过`PROMOTE_STATUS`字段表示,分别对应0(待发布)、...
MySQL数据库在处理含`ORDER BY`的SQL语句时,索引优化是非常关键的一环,因为这直接影响到查询性能。以下是一些关于如何利用索引来优化`ORDER BY`语句的知识点: 1. **合理创建索引**:索引可以显著提高数据读取...
- 对整个UNION结果进行排序或限制时,需要将ORDER BY和LIMIT子句放在最后一个SELECT语句之后,并用括号包围每个SELECT语句,例如: ``` (SELECT a FROM tbl_name WHERE a=10 AND B=1) UNION (SELECT a FROM ...
如果想要在 UNION 中使用 ORDER BY 对结果集进行排序,需要将 ORDER BY 子句放在最后一个查询语句的后面。这是因为 ORDER BY 对整个结果集进行排序,而最后一个查询的结果集是最终结果集的一部分,只有在最后一个...
- 当使用 `UNION` 或 `UNION ALL` 时,MySQL会自动对结果进行排序,除非你明确指定了 `ORDER BY` 子句。但是,`ORDER BY` 只能应用于整个 `UNION` 结果,而不能应用于单个 `SELECT` 语句。 - 如果没有指定 `ORDER BY...
在MySQL查询优化中,连接查询(join)与排序(order by)和限制返回结果的数量(limit)是常见的操作,但当它们结合在一起时,可能会导致性能下降。这个问题在标题和描述中已经阐述得很清楚,主要涉及到如何高效地...
MySQL中的`UNION`和`UNION ALL`是两种用于合并多个`SELECT`查询结果集的方法,它们在处理数据合并时具有重要的作用。本篇文章将深入解析这两种操作以及如何使用表别名和字段别名来简化和优化SQL查询。 1. **MySQL ...
在MySQL中,`UNION` 和 `UNION ALL` 是用于合并多个`SELECT`语句结果的两种方式,它们在处理结果集时有着显著的区别。本文将深入探讨这两种操作符的使用方法及其性能差异。 首先,`UNION` 操作符用于合并两个或多个...