У меня есть следующая таблица:
+------+---------+--------+
| lang | title | url |
+------+---------+--------+
| pt | Livro 1 | o294jl |
| en | Book 1 | o294jl |
| en | Book 2 | 7s621f |
+------+---------+--------+
Мне нужно расставить приоритеты lang
, когда системным языком является определенный язык.Например, скажем, я работаю с языком pt
, мне нужен запрос, который возвращает следующее:
+------+---------+--------+
| lang | title | url |
+------+---------+--------+
| pt | Livro 1 | o294jl |
| en | Book 2 | 7s621f |
+------+---------+--------+
В основном мне нужно установить детерминированное значение для title
, lang
,и т.д., когда GROUP BY url
используется.В настоящее время он в основном получает самое низкое значение id
:
SELECT lang, title, url
FROM book
GROUP BY book.url
Я пытался использовать ORDER BY
с предложениями CASE
, но, поскольку он запускается после операции GROUP BY
, он не работает,Я мог бы использовать GROUP_CONCAT
с IF
, чтобы выбрать правильное значение, но, поскольку в моей реальной таблице есть несколько столбцов, это не выглядело бы хорошо.
Спасибо.