Wie kann ich diese Prisma-Abfragen auf eine einzige Abfrage reduzieren?
P粉423694341
P粉423694341 2023-09-03 08:34:00
0
1
412
<p>Ich muss den letzten <code> des Benutzers </code> nach Datum abrufen, ohne vorher die <code>id</code> zu kennen </code>, ich kann es mit zwei Abfragen wie dieser machen: </p> <pre class="brush:php;toolbar:false;">ctx.prisma.post.update({ Wo: { ID: Warten auf ctx.prisma.post .findFirst({ wobei: { Benutzer-ID: "c2e4c855-768c-48ab-b9c1-155ce1090cd6 }, orderBy: { Datum: "desc" }) .then(post => post.id), }, Daten: { aktualisiert: wahr }, })</pre> <p>Ich habe versucht, es als Abfrage zum Laufen zu bringen, hatte aber keinen Erfolg. Dies ist die beste SQL-Klausel, die ich je bekommen habe: </p> <pre class="lang-sql Prettyprint-override"><code>UPDATE-Beitrag SET aktualisiert = wahr WO id IN ( WÄHLEN AUS ( SELECT-ID VON Beitrag WHERE user_id = "c2e4c855-768c-48ab-b9c1-155ce1090cd6" AND date = (SELECT MAX(date) from Post)) as x); </code></pre> <p>Obwohl es sich hierbei um eine Klausel handelt, greift sie auch zweimal auf die Datenbank zu. Wenn es eine bessere Möglichkeit gibt, dies in SQL zu tun, wäre ich daran interessiert, es zu lernen, aber ich möchte Prisma nicht verwenden, um <code>raw</code>-Abfragen zu senden und jegliche Typsicherheit zu verlieren. </p> <p>Ist das, was ich suche, möglich oder sollte ich es in zwei Abfragen behalten? </p>
P粉423694341
P粉423694341

Antworte allen(1)
P粉741223880

如果您只想更新给定 user_id 的最新 Post

UPDATE Post
SET updated = true
WHERE user_id = 'c2e4c855-768c-48ab-b9c1-155ce1090cd6'
ORDER BY date DESC, id DESC
LIMIT 1;

我不知道你会如何用 prisma 编写这个,但这是 SQL 查询。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!