我在表 recipes
中有一个字段已使用 mysql_real_escape_string
插入,我想计算该字段中的换行符数并使用它对记录进行排序数。
附注该字段称为成分。
谢谢大家
最佳答案
这样就可以了:
SELECT *, LENGTH(Ingredients) - LENGTH(REPLACE(Ingredients, '\n', '')) as Count
FROM Recipes
ORDER BY Count DESC
不过,我获取换行符数量的方法有点乱,而且我认为没有更好的方法。如果性能是一个大问题,我建议保留一个包含换行符数量的列。不过,对于中型数据集,我认为上述内容应该没问题。
如果你想要一个如上所述的缓存列,你会这样做:
UPDATE
Recipes
SET
IngredientAmount = LENGTH(Ingredients) - LENGTH(REPLACE(Ingredients, '\n', ''))
之后,无论何时更新/插入新行,您都可以计算金额(可能使用 PHP)并预先填写此列。或者,如果你喜欢那种东西,试试 triggers .
关于php - 计算字段中的换行符并按以下顺序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1176371/