我试图通过名为'wpcf-range'的特定变量来排序列表,该变量是数字,需要列出ASC。这是一个WordPress网站,但以前的开发人员使用MySQL语句,而不是使用WordPress方式,从而混淆了我的初学者大脑。请参阅下面的代码,我们非常感谢任何帮助...
$listing = $wpdb->get_results("SELECT SQL_CALC_FOUND_ROWS * FROM wp_posts INNER JOIN wp_term_relationships ON wp_term_relationships.object_id = wp_posts.ID WHERE wp_term_relationships.term_taxonomy_id = '" . $term->term_taxonomy_id . "' LIMIT " . $start . ", " . $limit);
答案 0 :(得分:0)
如果wpcf-range
是wp_posts
表中的一列,那么您可以在ORDER BY
子句之前的sql查询文本中添加LIMIT
子句,例如
... $term->term_taxonomy_id . "' ORDER BY `wpcf-range` LIMIT " . $start . ...
^^^^^^^^^^^^^^^^^^^^^^
(注意:列名称中包含短划线有点奇怪,这让我怀疑这可能不是wp_posts
表中的列。如果它确实包含短划线,那么你需要在反引号中包含对列名的引用。它需要用反引号括起来,否则,MySQL会将该破折号视为减法运算符。
如果wpcf-range
的数据类型是字符类型而不是数字类型,则可以通过向其添加零来将其强制转换为数字...
ORDER BY `wpcf-range`+0
如果这不是表格中列的名称(我们无法从您问题中提供的信息中得知......如果这是一个列名或其意图是表达式......我们无法判断wp_posts是否包含两个名为wpcf
和range
的数字列,这样您的意思是从另一个中减去一个,并将结果集的顺序除以结果值,例如< / p>
ORDER BY `wpcf` - `range`
如果这不是唯一的,您可能还想在ORDER BY中包含其他列,以便结果集的顺序是确定的,例如。
ORDER BY `wpcf` - `range`, post_id
答案 1 :(得分:0)
$listing = $wpdb->get_results("SELECT SQL_CALC_FOUND_ROWS * FROM wp_posts INNER JOIN wp_term_relationships ON wp_term_relationships.object_id = wp_posts.ID WHERE wp_term_relationships.term_taxonomy_id = '" . $term->term_taxonomy_id . "' ORDER BY wpcf-range ASC LIMIT " . $start . ", " . $limit);