Оператор IF в запросе MYSQL SELECT - PullRequest
0 голосов
/ 20 июня 2020

Я пытаюсь добавить условие, если язык пользовательского ввода соответствует языку 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

Согласно вышеизложенному, если оператор не работает, мне здесь не хватает logi c. Кто-нибудь хочет поправить или объяснить?

1 Ответ

0 голосов
/ 21 июня 2020

Всем спасибо за комментарии. Получил рабочий оператор 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...