php - 计算字段中的换行符并按以下顺序排序

标签 php mysql

我在表 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/

相关文章:

PHP MySQL Bulk inserts by BATCH with prepared statements

javascript - Laravel flash 消息无法使用关闭按钮关闭并且暂时无法自行关闭

mysql - 如何在我的在线网站中启用 mysql 端口?

mysql - Azure:如何最好地将 SQL 数据库与 MySQL/Web 服务连接

javascript - 在更多输入字段中设置值

php - imap_fetchbody 消息已编码

php - nginx 本地网络服务器的所有权和权限

php - MySQL 服务器在 Drupal 7 缓存中消失了

php - 在使用 ini_set ('max_execution_time' , 0);

mysql - ruby ActiveRecord : Insert to parent and child tables in single commit