Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana saya bisa menggunakan GABUNG dalam pernyataan UPDATE?

Saya pikir ini harus dilakukan:

UPDATE QandA AS ans1
JOIN QandA AS ans2 ON ans2.related = ans1.related
JOIN QandA AS ques ON ans2.related = ques.id
SET ans1.accepted = (ans1.id = :answer_id)
WHERE ques.author_id = :session_id
AND ans2.id = :answer_id

JOIN pertama menyaring jawaban atas pertanyaan yang sama dengan jawaban yang diterima.

JOIN yang kedua menemukan pertanyaan itu.

WHERE klausa akan membatasi pembaruan hanya untuk pertanyaan dengan penulis tertentu dan menentukan ID jawaban yang diterima.

DEMO

Untuk syarat tambahan, tambahkan

AND (ques.free IS NULL or ans1.accepted IS NULL)

ke WHERE ayat. ques.free IS NULL cocok dengan pertanyaan gratis apa pun, dan ans1.accepted IS NULL cocok dengan pertanyaan tanpa jawaban yang diterima (karena ketika jawaban diterima, semua jawaban lain untuk pertanyaan itu akan accepted = 0 ).

DEMO pertanyaan tanpa jawaban yang diterima
DEMO pertanyaan gratis




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kinerja MySQL:Tabel tunggal atau beberapa tabel

  2. Beberapa gabungan di tabel MySQL

  3. Cara regex dalam kueri MySQL

  4. Berapa banyak tabel yang dapat dibuat dalam database mysql?

  5. JSON_UNQUOTE() – Hapus Kutipan dari Dokumen JSON di MySQL