mysql - 有没有办法按照在子句中输入的顺序显示 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 语句在同一结果中启用多个条目,因为括号(在其他教程中看到)给了我语法错误。
另外,如果有更好的解决方法,请告诉我!
编辑:我想澄清一下,我知道这不是创建转换服务的可持续解决方案,我只是认为这将是一种有趣的方式,可以更多地了解如何连接和使用不同的表等。
解决方案
您可以使用FIND_IN_SET
ORDER BY FIND_IN_SET(swedish.word, 'Hej,Mitt,Namn,Är');
推荐阅读
- bash - 如何保持中间容器在 Docker 中运行?
- python - 运行 python 包失败
- list - 预定义列表 F# 的总和
- java - 如何在单个控制器/服务方法中处理多个继承的 DTO?
- c# - 在 LINQ 查询 .NET Core/EF 中使用 AutoMapper
- c# - AutoMapper:映射记录类型的问题
- python - 如何修复没有与 Django 中的参数反向匹配的问题
- c++ - 使用 vkEnumerateInstanceVersion 获取准确的 Vulkan API 版本
- security - QUIC 协议是否以明文形式发送 ClientHello?
- git - Git:无法产生错误并且无法分叉