Ben şu MySQL sorgusu vardır:
SELECT SQL_CALC_FOUND_ROWS p.*
FROM product AS p
LEFT JOIN productCategory AS c ON FIND_IN_SET(c.id, REPLACE(TRIM(p.categories), ' ',','))
WHERE (
c.id IS NULL
OR c.status = 'D'
OR p.categories IS NULL
OR TRIM(p.categories) = ''
)
AND p.deprecated = 'N'
LIMIT 0,30
Bu sorgu, hangi ürünleri almak için:
- Şey
p.categories
sütununda, ancak satırproductCategory
tablo yoksa üzerinde belirledi - Bir
productCategory
satır var, amaproductCategory
satırda durum 'D' ayarlanır - Hiçbir şey
p.categories
sütununda belirledik
p.categories
boşluk ayrılmış sayısal değerler productCategory
masaya kimlikleri temsil eden bir satır. Değil iyi tasarım, verilmiş ama ben bu görevi verilmiş, bu yüzden bunu yapmanın bir yolunu bulmalıyız olmuştur.
PHP kodu, bu sorgu doğrudan sonradan yürütülür:
SELECT FOUND_ROWS() as count
Phpmyadmin çalıştırıldığında, ben satır binlerce döndü ve ben ikinci sorgusu, ben satır sayısının doğru bir sayım değerini almak olsun. I mysqli_query () aracılığıyla aynı ilk sorguyu çalıştırdığınızda, ben hiç döndürülen satır almak ve aşağıdaki sorgu 1 sayısını verir.
Phpmyadmin ve benim PHP kodu İkisi aynı veritabanına bağlanıyorsunuz.
Herkes neyin yanlış gittiğini görebiliyor musun?
Update:
Ben sadece bu nedenle ilk seçtikten sonra SQL_CALC_FOUND_ROWS, sonraki sorguda, ben bu toplam ne olacağını bir sayımını almalısınız, büyük bir toplam var olabilir çünkü ilk 30 satır geri istiyorum.