0
我想寫一個MYSQL查詢獲取標題,url_title,類別,並且還設置了一個基於類別值的值的URL字段。與IF條件的MySQL查詢
我需要做的是檢查管道分離的類別列(例如:10 | 122 | 40 | 187),並將url列的值設置爲http://www.mydomain.tld並添加url_title,如果類別列包含類別10 ,如果列中沒有這些類別,則返回40,80,然後將url設置爲http://www.mydomain2.tld並添加url_title。
我試圖使用下面的條件,但我顯然做錯了;
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
這裏是表結構;
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
我將不勝感激任何意見。
更新:我已更新查詢,我正在使用。我試圖簡化這個問題,但意識到這是一個基準。我還包括了上面的表格結構。
您不應該在列中存儲分隔列表。關係數據庫有一個偉大的數據類型來存儲列表。在這種情況下,它被稱爲表格,特別是結點表格。 – 2014-09-24 11:03:05
該死的,我粘貼了錯誤的網址。我的意思是:可能重複[如何匹配逗號分隔的字符串,而不考慮它們在Mysql中的位置順序](http://stackoverflow.com/questions/25887713/how-can-match-a-string-of-comma - 分隔-不論-的-其位階/ 25887934#25887934)。 – GolezTrol 2014-09-24 11:06:55
對不起,我應該補充說,這些類別不是以管道分隔的方式存儲的。我已將它們連接到查詢中的一個字段中。 – doubleplusgood 2014-09-24 11:08:10