首页 > 解决方案 > 有没有办法按照在子句中输入的顺序显示 INNER JOIN 条目?

问题描述

我是 MySQL 的初学者,我自己创建了一种翻译服务,如谷歌翻译。问题是查询没有按照我输入它们的方式显示,而是它们似乎是按 ID 列排序的。

我已经尝试(以我有限的知识)研究创建关系等的不同方式以显示不同语言的等价词。现在我已经开始尝试使用 INNER JOIN 子句来显示和“构造”句子。

SELECT swedish.word,
       german.word,
       german.swear,
       swedish.swear,
       swedish.id
FROM   swedish
       INNER JOIN german
               ON swedish.id = german.id
WHERE  swedish.word = "Hej"
        OR swedish.word = "Mitt"
        OR swedish.word = "Namn"
        OR swedish.word = "Är"; 

这将在德语单词旁边显示瑞典语单词,也就是创建句子,但它现在将按照我输入它们的顺序显示,而不是按 ID 列排序,它将单词混合在一起。有什么解决办法吗?

以下是结果的图像,按 ID 排序:

在此处输入图像描述

我曾考虑过使用 ORDER BY 和某种临时值,然后按此排序,但是我不确定如何仅为选定的条目/行实现和自动增加该值。

我正在使用 OR 语句在同一结果中启用多个条目,因为括号(在其他教程中看到)给了我语法错误。

另外,如果有更好的解决方法,请告诉我!

编辑:我想澄清一下,我知道这不是创建转换服务的可持续解决方案,我只是认为这将是一种有趣的方式,可以更多地了解如何连接和使用不同的表等。

标签: mysqlsql

解决方案


您可以使用FIND_IN_SET

ORDER BY FIND_IN_SET(swedish.word, 'Hej,Mitt,Namn,Är');

推荐阅读