IF ELSE 문이 쿼리 내에서 작동하는 방식에 대해 약간 혼란 스럽습니다. 여기 ORDER BY에 대한 쿼리 내의 IFELSE 문
내가 노력, 플러스의 변화,하지만 난 그것을 오류없이 결과를 다시 가져 얻이 수없는 것 ... 이제$get_trash = mysql_query("SELECT *
FROM message
WHERE message_to_user_id = '$user_id'
AND message_to_user_id_hide = 1
OR message_from_user_id = '$user_id'
AND message_from_user_id_hide = 1
IF message_to_user_id = '$user_id'
THEN ORDER BY message_to_user_id_hide_time DESC
ELSEIF
message_from_user_id = '$user_id'
THEN ORDER BY message_from_user_id_hide_time DESC
ENDIF") or die(mysql_error());
내가 다른 문 경우 사용했습니다 봤는데 무엇 PHP로 무수히 많은 시간을 보냈지 만, MySQL 쿼리를 사용하지 않았기 때문에 누군가가 여러분이 어떻게 움직이는지를 밝힐 수 있다면 정말 고맙겠습니다!
나는 이런 식으로 명령 된 프로젝션을 할 수 있다고 생각하지 않습니다. PHP로 질의를 작성하거나 저장된 프로 시저 내에서이 작업을 수행하는 것이 더 낫다. – Perpetualcoder
WHERE 절에 문제가있다 - (from, to) 쌍이 맞지 않기 때문에 올바른 결과를 반환하지 않을 것이다. 최적화 프로그램에게는 분명합니다. 주위에 대괄호가 필요합니다. 둘째, 출발지와 도착지 필드 모두 결과 집합에 포함됩니다. 두 열 모두 한 번에 정렬 할 수 없습니다. 이 쿼리는 UNION 문으로 더 좋습니다. –
@OMG - MySQL과 SQL Server 그리고 모든 DBMS가 OR에 넣기 전에 의심 스럽습니다. 그래서 매우 명백합니다. http://dev.mysql.com/doc/refman/5.0/en/operator-precedence.html – RichardTheKiwi