这是一个
奇怪的条件语句 - 我不确定这是否可能。
我有一个 MYSQL 查询:
SELECT
cute_news.title, cute_news.id, cute_news.avatar, cute_news.category,cute_news.date, cute_fields.YouTubeTN, cute_fields.alternate_title, cute_fields.NewsSource, cute_fields.alternate_url, cute_fields.cf_id
FROM cute_news, cute_fields
WHERE
YEAR(FROM_UNIXTIME(cute_news.date)) = '2007' AND
cute_fields.cf_id = cute_news.cf_id AND
FIND_IN_SET ('10', cute_news.category)
ORDER BY cute_news.date DESC
我的问题是我想要:
IF ( cute_fields.cf_id = cute_news.cf_id )THEN
{ SELECT
cute_news.title, cute_news.id, cute_news.avatar, cute_news.category,cute_news.date, cute_fields.YouTubeTN, cute_fields.alternate_title, cute_fields.NewsSource, cute_fields.alternate_url, cute_fields.cf_id
FROM cute_news, cute_fields
WHERE
YEAR(FROM_UNIXTIME(cute_news.date)) = '2007' AND
cute_fields.cf_id = cute_news.cf_id AND
FIND_IN_SET ('10', cute_news.category)
ORDER BY cute_news.date DESC }
ELSE {
SELECT
cute_news.title, cute_news.id, cute_news.avatar, cute_news.category,cute_news.date
FROM cute_news
WHERE
YEAR(FROM_UNIXTIME(cute_news.date)) = '2007' AND
FIND_IN_SET ('10', cute_news.category)
ORDER BY cute_news.date DESC }
ORDER BY..
实际执行此任务最困难。.也许这是不可能的。提前感谢忍者!
如果我清楚地理解你的要求,你需要Left Join
.如果会给你NULL
你的Else
部分。
SELECT
cute_news.title, cute_news.id, cute_news.avatar, cute_news.category,cute_news.date,
cute_fields.YouTubeTN, cute_fields.alternate_title, cute_fields.NewsSource, cute_fields.alternate_url, cute_fields.cf_id
FROM cute_news n
LEFT JOIN
cute_fields f
ON f.cf_id = n.cf_id
WHERE
YEAR(FROM_UNIXTIME(cute_news.date)) = '2007' AND
FIND_IN_SET ('10', cute_news.category)
ORDER BY cute_news.date DESC