Bir Madde Kimliği (birincil anahtar) ve bir Makale Başlığı içeren bir MySQL veritabanı tablom var. Yinelenen başlıkları tablodan kaldırmak istiyorum, ancak başlığın ilk oluşumunu koru.Bir MySQL UPDATE ifadesinde OFFSET'i nasıl taklit edebilirim?
UPDATE articles
SET title = ''
WHERE title = '$duplicate_title'
Ben güncellemek istiyorum:
SELECT
title,
count(id) AS count
FROM articles
GROUP BY title
HAVING count > 1
Sonra bir foreach döngüsü ve bu komutu kullanarak bir boş ile tüm yinelenen başlıklar değiştirdik: Başlangıçta sadece tüm yinelenen başlıklar için bir sorgu yaptılar
articles
tablosunu ve ilk giriş hariç tüm yinelenen başlıkları değiştirerek, bu gibi bir şey kullanarak Makale Kimliği ASC'ye dayalı olarak. Sorun şu ki, OFFSET bir UPDATE'de çalışmıyor gibi görünüyor. Bunu tek bir sorguda yapmanın bir yolu var mı?
UPDATE articles
SET title = ''
WHERE title = '$duplicate_title'
ORDER BY id ASC
OFFSET 1
ne a ve açıklayabilir misiniz? sözdizimi yapar? Diğer sorgularda bir çeşit "hile" gördüm ve neler olduğunu anladıktan sonra bile anlayamadım. –
'' ', uygun bir şekilde gelişmiş bir istemci (PHP'nin PDO uzantısı gibi) verilen [hazırlanan ifadeler] (http://en.wikipedia.org/wiki/Prepared_statement) 'da genel olarak kullanılan bir parametre yer tutucudur – Phil
Tamam, açıkım ? ve PDO. Şimdi '' GÜNCELLEŞTİRME makaleleri '' ve '1'DEN makalelerden SELECT' ne yapıyor? Özellikle, "a" ve "sub" demek istiyorum. Bu, 'bir' gibi makaleler, iç sorgudaki dış sorgudaki verileri bir çakışma olmadan erişmemize izin veren bir kısayol mu? –