MySQL - 带有额外列的 UNION DISTINCT

迪伦VB

我正在尝试在我的一个应用程序中对“搜索”进行 MySQL 查询。这是我目前拥有的:

(SELECT id, title, 1 AS `order`
    FROM tasks
    WHERE title LIKE '%Task%Test%')
UNION DISTINCT
(SELECT id, title, 2 AS `order`
    FROM tasks
    WHERE title LIKE '%Task%' AND title LIKE '%Test%')
ORDER BY `order` ASC;

第二个查询UNION作为第一个查询的后备,因为第一个查询期望单词的顺序相同。(字数是动态的,取决于搜索查询。)

在结果中,我想先显示第一个查询的结果,因为那些更精确。为此,我尝试在结果中添加一个额外的列:order.

我的问题是DISTINCT仅适用于完全相同的行,而我的行则不是这种情况,因为orders列。

例子

桌子:

id    title
1     'Test Task'
2     'The Second Test Task'
3     'A Third Task For Testing'
4     'A Fourth Test'

结果:

id    title                         order
3     'A Third Task For Testing'    1
1     'Test Task'                   2
2     'The Second Test Task'        2
3     'A Third Task For Testing'    2

我想要的是:

id    title                         order
3     'A Third Task For Testing'    1
1     'Test Task'                   2
2     'The Second Test Task'        2

谁能帮助我?

提前致谢!

蒂姆·比格莱森

我认为您可以在不使用联合的情况下从单个查询中获得相同的结果:

SELECT
    id, title,
    CASE WHEN title LIKE '%Task%Test%' THEN 1
         WHEN title LIKE '%Task%' AND title LIKE '%Test%' THEN 2
         ELSE 3
    END AS label
FROM tasks
WHERE
    title LIKE '%Task%Test%' OR
    (title LIKE '%Task%' AND title LIKE '%Test%')
ORDER BY label;

演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL Single DISTINCT列

来自分类Dev

使用 UNION 和 DISTINCT 优化 MySQL 选择查询

来自分类Dev

带有 COUNT(DISTINCT) 的 mySQL 窗口函数

来自分类Dev

MySql Distinct对于相同的列

来自分类Dev

MYSQL多列COUNT DISTINCT

来自分类Dev

mysql ColumnName AS 1,ColumnName AS 2,带有WHERE,对所有列使用UNION获取AS 1

来自分类Dev

mysql union全部带有别名,语法错误

来自分类Dev

MySQL从带有UNION的子查询中选择最新记录

来自分类Dev

带有 Union All 的 View 中的 MySQL Case 语句

来自分类Dev

MySQL中两列的DISTINCT值

来自分类Dev

MySQL GROUP_CONCAT DISTINCT多列

来自分类Dev

MySQL COUNT(当...然后是DISTINCT列时的情况)

来自分类Dev

mysql仅对一列使用DISTINCT

来自分类Dev

MySQL DISTINCT 按一列

来自分类Dev

多列的 Mysql DISTINCT(删除重复项)

来自分类Dev

MySQL Union导致列而不是行

来自分类Dev

where 子句中的 MySQL 未知列(UNION)

来自分类Dev

MySQL 想用 UNION 对两列求和

来自分类Dev

使用带有2个MySQL表和DISTINCT的表Join获取信息

来自分类Dev

带有LEFT JOIN的MySQL DISTINCT查询通过主键选择重复的行

来自分类Dev

如何在MySQL中获取DISTINCT列和COUNT列?

来自分类Dev

在MySQL UNION查询中使用带有单独LIMIT语句的ORDER BY RAND()

来自分类Dev

带有 UNION 的 MySQL 查询返回修剪后的字符串

来自分类Dev

将带有多个 UNION 的 mysql 查询结果输出到 CSV 中

来自分类Dev

MySQL查询DISTINCT,COUNT

来自分类Dev

MySQL的-选择计数DISTINCT

来自分类Dev

复杂的mysql查询DISTINCT

来自分类Dev

适用于多列的Java MySQL DISTINCT

来自分类Dev

MySQL Count Distinct值多列同一行