sql >> データベース >  >> RDS >> Mysql

文字列を連結したDjangoF()オブジェクトを使用できますか?

    同様の問題がありました。基本的に、2つのフィールドを連結して、ユーザーのフルネームを取得したいと思いました。私はそれをこのように解決しました(しかし、私はPostgresを使用していたと言わなければなりません):

    from django.db.models.functions import Concat
    from django.db.models import F, Value, CharField
    
    AnyModel.objects.filter(**kwargs).annotate(full_name=Concat(F('model__user_first_name'), Value(' '), F('model__user_last_name'), output_field=CharField()))
    

    ここで、F('...') 引数をクエリとして評価するため、モデル自体のフィールドにクエリを実行したり、Value('...')の間にfilter/getで行うようにモデルにまたがったりすることができます。 その引数を文字通り評価します(私の場合、first_nameの間にスペースを配置する必要がありました およびlast_name )、およびoutput_field=... 注釈付きフィールドのタイプを指定します(CharFieldになりたかった )詳細については、Djangoのドキュメントをご覧ください。コンキャット

    それがそこにいる誰かのために役立つことを願っています。乾杯



    1. SQL Server(T-SQL)で文字列内の複数の文字を置き換える

    2. MariaDB JSON_VALUE()の説明

    3. MySQLの新しいHeatwaveを理解する

    4. PostgreSQLを使用して過去24時間からレコードを選択する方法