두 개의 필드 (id 및 word)가있는 테이블이 있습니다. 사람은 이유에 가르치 려 수 :MySQL 쿼리 퍼즐
$query0 = "SELECT * FROM words WHERE id IN ($treated_words) ";
가 유효한 쿼리입니다. 하지만 :
$query0 = "SELECT * FROM words ORDER BY id ASC WHERE id IN ($treated_words) ";
아니요. 많은 감사
두 개의 필드 (id 및 word)가있는 테이블이 있습니다. 사람은 이유에 가르치 려 수 :MySQL 쿼리 퍼즐
$query0 = "SELECT * FROM words WHERE id IN ($treated_words) ";
가 유효한 쿼리입니다. 하지만 :
$query0 = "SELECT * FROM words ORDER BY id ASC WHERE id IN ($treated_words) ";
아니요. 많은 감사
SQL 쿼리의 요소 순서가 중요합니다. ORDER BY
절은 WHERE
절 뒤에 나타나야합니다.
MySql 문서에서 구문 규칙을 확인하십시오.
SELECT [ DISTINCT | ALL ]
column_expression1, column_expression2, ....
[ FROM from_clause ]
[ WHERE where_expression ]
[ GROUP BY expression1, expression2, .... ]
[ HAVING having_expression ]
[ ORDER BY order_column_expr1, order_column_expr2, .... ]
WHERE id IN ($treated_words)
부분 뒤에 ORDER BY id ASC
을 이동하려고합니다.
order_by before where 문을 사용할 수 없습니다.
MySQL은 이러한 방식으로 작동합니다. 테이블에서 모든 항목이나 특정 필드를 선택하고 필터 (위치) 및 id 별 주문에 적용합니다. 그래서 선택한 데이터를 주문한 다음 필터를 적용 할 수 없습니다.
고맙습니다. 그런 바보 같은 질문에 사과드립니다. –
@ 패트 릭 : 우리 모두 거기에 있었어. –