首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带IF条件的MySQL查询

带IF条件的MySQL查询
EN

Stack Overflow用户
提问于 2014-09-24 19:01:13
回答 1查看 73关注 0票数 0

我正在尝试编写一个MYSQL查询,该查询获取title、url_title和categories,并根据categories列的值设置一个URL域。

我需要做的是检查以管道分隔的Categories列(例如: 10|122|40|187),如果categories列包含类别10、40、80,则将URL列的值设置为http://www.mydomain.tld并附加url_title,否则如果列中不存在这些类别,则将url设置为http://www.mydomain2.tld并附加url_title。

我尝试使用下面的条件,但我显然这样做是错误的;

代码语言:javascript
复制
SELECT exp_channel_data.entry_id AS entry_id, exp_channel_titles.title AS title, exp_channel_titles.url_title AS url_title, GROUP_CONCAT(cp.cat_id SEPARATOR '|') AS categories,
  IF('122,123,124,125,126,127,128,129,130,131,132,187' IN categories,
     (CONCAT('http://www.mydomain.tld',url_title AS 'URL')),
     (CONCAT('http://www.mydomain2.tld',url_title AS 'URL'))
  )
FROM data
FROM exp_channel_data
LEFT JOIN exp_channel_titles ON exp_channel_titles.entry_id = exp_channel_data.entry_id
LEFT JOIN exp_category_posts AS cp ON exp_channel_data.entry_id = cp.entry_id

下面是表结构;

代码语言:javascript
复制
exp_channel_data
-------------
entry_id int 10

exp_channel_titles
-------------
entry_id int 10
title varchar 100
url_title varchar 100

exp_category_posts [this is the junction table that has been referred to]
-------------
entry_id int 10
cat_id int 10

如果有任何建议,我将不胜感激。

更新:我已经将查询更新为我正在使用的查询。我试着简化这个问题,但我意识到这是一个胡言乱语。我还包括了上面的表结构。

EN

回答 1

Stack Overflow用户

发布于 2014-09-24 19:06:35

因为你有一个糟糕的数据结构,所以你必须使用一种相当暴力的方法来做到这一点:

代码语言:javascript
复制
select title, url_title, categories,
       (case when find_in_set(122, replace(categories, '|', ',')) > 0 or
                  find_in_set(123, replace(categories, '|', ',')) > 0 or
                  . . .
                  find_in_set(187, replace(categories, '|', ',')) > 0
             then CONCAT('http://www.mydomain.tld', url_title AS 'URL')
             else CONCAT('http://www.mydomain2.tld', url_title AS 'URL')
        end)
FROM data;

您应该在连接表中存储类别,每个类别和实体占一行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26015244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档