2014-04-27 1 views
0

숫자 메타 값으로 정렬 된 WordPress 쿼리가 있지만 쿼리 결과가 약간 잘못되었습니다. 쿼리의 결과는 여기에서 볼 수 있습니다WordPress 숫자 메타 순서가 잘못됨

<?php query_posts('post_type=rushmoor&meta_key=subaru_driver_best_lap&orderby=meta_value_num&order=asc');?> 

: 여기

는 쿼리입니다

http://www.subarurallyexperience.co.uk/rushmoor/ranking/

그것은 위해 대부분이지만, 어떤 경우는의 경우는 거기 밖으로 예를 들어 1 위와 2 위는 현재 거꾸로되어 있습니다 (02.03.44는 02.03.66 이전이어야 함).

나는이 문제를 해결하기 위해 여러 가지 다른 방법으로 쿼리를 다시 작성하려고했지만 아무런 행운이 없었다.

저는 정직하지 않습니다. 왜 이러한 것들이 고장났습니다.

누구든지이 문제에 관해 밝힐 수 있습니까?

답변

2

orderby으로 meta_value_num을 사용하고 있기 때문에 의심 스럽습니다. MySQL은 값을 숫자로 분석하고 02.03까지 얻은 다음 두 번째 소수점을 계산합니다. 그러면 그 지점에서 포기하게됩니다. 따라서 02.03.44와 02.03.66의 순서는 임의적입니다. 2.03과 2.03 만 비교합니다.

데이터베이스의 모든 값의 형식이 xx.xx.xx 인 경우 meta_value으로 주문하는 것이 좋습니다. (예를 들어)는 2.03.44로 한 시간을 저장 알파 종류는 2

편집하기 전에 공을 넣어 것이 경우, 02.03.66와 다른 경우에만 문제가있는 것

위 내용을 확인하기 위해 the WordPress sourcemeta_value_num이 메타 값에 0을 더하여 숫자로 처리합니다. 다음 쿼리는 MySQL :

select '02.03.44' + 0, '02.03.66' + 0 from dual 

모두에 대해 2.03을 반환합니다.

관련 문제