作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要一些查询。
CREATE TABLE `location_areas_localized` (
`id` int(11) DEFAULT NULL,
`lang_index` varchar(5) DEFAULT NULL,
`name` varchar(255) DEFAULT NULL,
KEY `id` (`id`),
KEY `lang_index` (`lang_index`),
KEY `name` (`name`),
FULLTEXT KEY `name_2` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `location_areas_localized` (`id`, `lang_index`,`name`)
VALUES
(1,'ru','Нью Йорк'),
(1,'en','New York'),
(2,'en','Boston'),
(2,'ch','波士顿')
;
搜索逻辑。
如果找到包含 lang_index='ru' AND id IN(1,2)
的行。它必须返回所有 lang_index='ru'
如果带有 lang_index='ru'
的一行或多行不存在,但存在带有 lang_index='en'
和某个 id 的行。然后,它必须返回所有存在 land_index='ru' AND id IN(1,2)
的内容以及所有未通过 lang_index='ru'
找到但通过 找到的内容>lang_index='en'
(在表中 - 所有带有 lang_index='en'
的行始终存在)
每个 ID 只需要一个结果。我尝试了 GROUP BY id 但它无法正常工作。
输出必须是
1,'ru','Нью Йорк'
2,'en','Boston' (because lang_index='ru' with id 2 not found)
最佳答案
SELECT
coalesce(max(CASE WHEN lang_index='ru' THEN name ELSE null END), name) as name
FROM
location_areas_localized
WHERE
id IN (1,2)
AND (lang_index='en' OR lang_index='ru')
group by
id
ORDER BY
FIELD(lang_index,'ru','en');
关于mysql。使用 IF 选择 field=1 或 field=2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14394980/
我是一名优秀的程序员,十分优秀!