SQL Server FREETEXTTABLE запрос к mySQL

У меня есть проект Django, который ранее использовал базу данных Sql Server. Теперь мне нужно адаптировать его для mySQL.

Я пытаюсь реализовать и найти эквивалент для этого сырого sql с помощью FREETEXTTABLE.

Если кто-нибудь может указать мне правильное направление в отношении какой-либо документации, я буду очень признателен.

Оригинальный необработанный запрос SQL Server

sql = "select c.myKey, b.[KEY], b.RANK, a.article_appendix, c.article_appendix as article, c.title_en as t1_en, c.title_fr as t1_fr, a.title_en as t2_en, a.title_fr  as t2_fr from [myapp_collectiveagreementsubarticle] a inner join (SELECT * FROM FREETEXTTABLE ([myapp_collectiveagreementsubarticle], ([content_en]), " + search2 + ")) b on a.myKey = b.[KEY]  inner join [myapp_collectiveagreement] c on a.articleKey_id = c.myKey order by b.RANK desc"
            
searchResult = Collectiveagreement.objects.raw(sql)

Попробуйте

from django.db import connection

search_term = '+your_search_term'
sql = """
SELECT 
    c.myKey, 
    b.myKey as KEY, 
    b.score, 
    a.article_appendix, 
    c.article_appendix as article, 
    c.title_en as t1_en, 
    c.title_fr as t1_fr, 
    a.title_en as t2_en, 
    a.title_fr as t2_fr 
FROM 
    myapp_collectiveagreementsubarticle a 
INNER JOIN (
    SELECT 
        myKey, 
        MATCH(content_en) AGAINST(%s IN BOOLEAN MODE) as score 
    FROM 
        myapp_collectiveagreementsubarticle 
    WHERE 
        MATCH(content_en) AGAINST(%s IN BOOLEAN MODE)
) b ON a.myKey = b.myKey  
INNER JOIN 
    myapp_collectiveagreement c ON a.articleKey_id = c.myKey 
ORDER BY 
    b.score DESC;
"""

with connection.cursor() as cursor:
    cursor.execute(sql, [search_term, search_term])
    searchResult = cursor.fetchall()
Вернуться на верх