2010-06-08 5 views
0

쿼리에 대한 도움이 필요합니다.sql 질문 Select * From * where one = two order by

테이블에서 일부 값을 선택하고 싶지만 값은 다른 셀의 값에 따라 다릅니다. 내가 그들을 선택한 후 그들을 정렬해야합니다.

사용할 수 있습니까? ELECT column FROM table WHERE one=two ORDER BY ...?

덕분에, 세바스찬

+4

시도해 보셨습니까? –

+0

네,하지만 시도 SQL 구문을 수동으로 확인하는 오류가 발생합니다. – sebastian

+2

검색어를 표시 할 수 있습니까? 그렇다면 아마 뭔가 다른 것이 틀림 없습니다. –

답변

3

예 수는만큼 제대로 SELECT을 주문한다.

CREATE TABLE table1 (
    id INT NOT NULL, 
    name1 VARCHAR(100) NOT NULL, 
    name2 VARCHAR(100) NOT NULL, 
    sortorder INT NOT NULL 
); 

INSERT INTO table1 (id, name1, name2, sortorder) VALUES 
(1, 'Foo', 'Foo', 4), 
(2, 'Boo', 'Unknown', 2), 
(3, 'Bar', 'Bar', 3), 
(4, 'Baz', 'Baz', 1); 

SELECT id 
FROM table1 
WHERE name1 = name2 
ORDER BY sortorder; 

결과 :

4 
3 
1 
0

어쩌면 몇 가지 작업 예 도움이 될 것입니다 여기에

는 행동이 유형의 쿼리를보고 복사하여 MySQL의 쿼리 브라우저에 붙여 넣을 수 있습니다 예입니다 :

내 데이터베이스 중 하나에서 8100 개의 레코드를 반환합니다.

SELECT * fax_logs FROM WHERE 수수료 = service_charge

이 내 데이터에서 2700 이상의 레코드를 반환 fax_logs로부터

SELECT *를 수수료 = service_charge + 5

이 6900 이상의 레코드를 반환

을 SELECT * FROM fax_logs 수수료 = service_charge + copies

0

귀하의 질문에 대한 오해를 불러올 수도 있지만 첫 번째와 두 번째 열의 값을 비교하려고합니다. MySQL에서는 이름을 사용하지 않고 숫자로 열을 참조 할 수 있으며 ORDER BY 절 : SELECT * FROM table ORDER BY 1 (첫 번째 열에 의한 순서) 내에서만 열을 참조 할 수 있습니다. WHERE에 열 색인을 사용할 수 없습니다.