Mysql 什么';这种情况下SQL查询有什么问题?
也许你能帮上忙,我正在使用这个案例查询,我正在尝试用它来做mysql加权。怎么了Mysql 什么';这种情况下SQL查询有什么问题?,mysql,sql,case,mysql-error-1064,Mysql,Sql,Case,Mysql Error 1064,也许你能帮上忙,我正在使用这个案例查询,我正在尝试用它来做mysql加权。怎么了 SELECT * FROM cronjob_reloaded WHERE site IN ('site1.com', 'site2.com') ORDER BY (CASE site WHEN 'site1.com' THEN 0.2 WHEN 'site2.com' THEN 0.8 ) * RAND( ) DESC LIMIT 0 ,
SELECT *
FROM cronjob_reloaded
WHERE site IN ('site1.com', 'site2.com')
ORDER BY (CASE site
WHEN 'site1.com' THEN 0.2
WHEN 'site2.com' THEN 0.8 ) * RAND( ) DESC
LIMIT 0 , 30
MySQL说:文档
1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解使用near')*RAND()DESC的正确语法
第4行的0,30'极限
下面是CASE的正确语法
SELECT *
FROM cronjob_reloaded
WHERE site IN ('site1.com', 'site2.com' )
ORDER BY (
CASE
WHEN site = 'site1.com' THEN 0.2
WHEN site = 'site2.com' THEN 0.8
END
) * RAND( ) DESC
LIMIT 0 , 30
箱子必须以以下方式关闭:
CASE site
WHEN 'site1.com'
THEN 0.2
WHEN 'site2.com'
THEN 0.8
END -- Added this END to your query's CASE
一个可能的问题是您没有使用END CASE 更改:
CASE site
WHEN 'site1.com'
THEN 0.2
WHEN 'site2.com'
THEN 0.8
)
致:
请参阅:ty非常好,它很有效。因为我的数据库中有很多来自site1的条目,所以我试图创建一个sql,其中只有20%来自site1,其余的来自site2
CASE site
WHEN 'site1.com'
THEN 0.2
WHEN 'site2.com'
THEN 0.8
END CASE