Bu bunu:
SELECT *, LENGTH(Ingredients) - LENGTH(REPLACE(Ingredients, '\n', '')) as Count
FROM Recipes
ORDER BY Count DESC
Linebreaks miktarını alıyorum yolu ancak, kesmek bir parçasıdır, ve ben daha iyi bir yolu olduğunu sanmıyorum. Ben performansı büyük bir sorun olup olmadığını linebreaks miktarını sahip bir sütunu tutmak öneriyoruz. Orta ölçekli veri setleri için, ama, ben yukarıda ince olması gerektiğini düşünüyorum.
Eğer yukarıda anlatıldığı gibi bir önbellek sütun olmasını istedim varsa, yapardın:
UPDATE
Recipes
SET
IngredientAmount = LENGTH(Ingredients) - LENGTH(REPLACE(Ingredients, '\n', ''))
Eğer yeni bir satır ekleme / güncelliyoruz zaman Bundan sonra, size (muhtemelen PHP ile) tutarları hesaplamak olabilir ve bu sütunda doldurun önce elden. Eğer bu tür bir şey içine iseniz ya, denemek triggers.