简体   繁体   English

MYSQL SELECT 查询中的 IF 语句

[英]IF Statement in MYSQL SELECT query

I'm trying to add condition if user input language matches url language如果用户输入语言与 url 语言匹配,我正在尝试添加条件

SELECT DISTINCT *, IF(url_lang = 'en', weight = (weight+1.1)<10, weight = (weight-1.1)<10) as user_language_weight
                      FROM links                
                      WHERE (status='active'
                            AND type='url' 
                            AND MATCH(title,description,keywords) AGAINST('($op_word_1*) | ($op_word_2*) | ($op_word_3*) | ($op_word_4*) | ($op_word_5*) | ($acc_op_word_1) | ($acc_op_word_2) | ($acc_op_word_3) | ($acc_op_word_4) | ($acc_op_word_5)' IN BOOLEAN MODE)
                      GROUP BY host
                      ORDER BY weight DESC

According to the above, if statement is not working, I'm missing some logic here.根据上述,如果语句不起作用,我在这里遗漏了一些逻辑。 Anyone care to correct or explain?有人愿意纠正或解释吗?

Thank you all for comments.谢谢大家的意见。 Got the IF statement working, ex:让 IF 语句正常工作,例如:

SELECT *, IF(url_lang = 'en', weight +1.1, weight -1.1) AS weight 
                  FROM links                
                  WHERE (status='active'
                        AND type='url' 
                        AND MATCH(title,description,keywords) AGAINST('($op_word_1*) | ($op_word_2*) | ($op_word_3*) | ($op_word_4*) | ($op_word_5*) | ($acc_op_word_1) | ($acc_op_word_2) | ($acc_op_word_3) | ($acc_op_word_4) | ($acc_op_word_5)' IN BOOLEAN MODE)
                  GROUP BY host
                  ORDER BY weight DESC

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM