mysql - ORDER BY mysql 逗号分隔值

标签 mysql wordpress

您好,我正在尝试按逗号分隔值对我的数据库进行排序,但它对我来说似乎无法正常工作。这是我的 mysql 查询。

   SELECT *
FROM wp_posts
LEFT JOIN wp_postmeta ON wp_posts.ID=wp_postmeta.post_id
LEFT JOIN wp_term_relationships ON wp_posts.ID=wp_term_relationships.object_id
LEFT JOIN wp_term_taxonomy ON wp_term_relationships.term_taxonomy_id=wp_term_taxonomy.term_id
LEFT JOIN wp_terms ON wp_term_taxonomy.term_id=wp_terms.term_id
WHERE wp_terms.name = 'Dimmers'
AND meta_key = 'feature_number_of_channels'
GROUP BY wp_posts.ID
ORDER BY meta_value  ASC

这是截图。 enter image description here 正如您从屏幕截图中看到的那样,它们似乎无法正常工作,请提供有关如何正确订购这些 ASC 的任何帮助???

我正在寻找的正确顺序是所有顺序中最高的,然后是这样的 ASC

24,48 - 4,6,12,24 - 12 - 6 - 6 - 3

最佳答案

更改您的 ORDER BY 以查看字符串的整数值:

ORDER BY CONVERT(SUBSTRING_INDEX(meta_value, ',', -1), SIGNED) DESC

这是一个例子:

SELECT "24,38" AS meta_value UNION
SELECT 1 AS meta_value UNION
SELECT 30 AS meta_value
ORDER BY CONVERT(SUBSTRING_INDEX(meta_value, ',', -1), SIGNED) DESC

返回:

Rows = 3
meta_value
24,38
30
3

祝你好运!

关于mysql - ORDER BY mysql 逗号分隔值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9366234/

相关文章:

javascript - Wordpress 媒体库附件详细信息

css - 如何使 wordpress 子菜单位置始终从左侧开始?

php - 连接到另一个IP(服务器)上的MySQL,PHP

mysql - 向依赖于第一列的 SELECT 语句添加子查询?

php - 在 WooCommerce 购物车价格中显示 2 种货币的计算

javascript - 使用 AJAX 从 WordPress 中处理 SQL

mysql - 带有 post_where 和多个关系键的嵌套元查询

mysql - 从 Mariadb 中的动态列字段中提取嵌套对象

mysql - 从 codeigniter 调用存储过程不起作用

mysql - 如何在 MySQL 中选择包含多个值的行?