2014-07-05 5 views
0

현재 SQL/phpmadmin 용 온라인 대학 서버에서 백엔드 데이터베이스 시스템을 개발 중입니다.CSV 데이터를 SQL로 가져 오면 잘못된 순서로 데이터가 표시됩니다.

  1. 가능하고
  2. 는 테이블에서 데이터를 볼 수 있습니다 비행 파견 책임자입니다 항공편을보고 검색 할 수 있습니다

    나는 고객이 있도록 다양한 테이블에서 데이터를 저장하기 위해 찾고 있어요 특정 일에 특정 항공편에 승무원을 배정하십시오.

필자는 csv 파일을 사용하여 Excel에서 데이터를 업로드하고 있습니다. 행의 열은 phpmyadmin이지만 Excel 파일에는 없습니다.

파일이 모두 올바르게 업로드됩니다 (단 하나의 결함 제외). 순차적으로 비행 코드가 주문되었지만 이러한 파일이나 특정 파일을 업로드 할 때 잘못된 순서로 업로드됩니다. 나는 1-18 순차적으로 원한다. 대신 1, 10, 11 및 2-9 등입니다.

업로드 할 때 나는 csv 유형을 선택했고 "묶은 칸"필드를 공란으로두고 "대체하십시오"란 상자를 체크하도록했습니다 데이터."

누구든지 해결 방법을 알고 있습니까? 이 데이터베이스에 대한 쿼리를 수행하는 방법에 영향을 미치기를 원하지 않습니다.

요청시 테이블 출력을 포함 할 수 있습니다. 내가 업로드 한 후 편집을 클릭하면 코드가 다음과 같이 올바른 순서로 보여줍니다 그러나

REPLACE INTO `routes` VALUES ('1', 'FWL-101', 'BFS', 'LGW', '600', '710')# 1 row affected. 
REPLACE INTO `routes` VALUES ('2', 'FWL-102', 'LGW', 'BFS', '700', '810')# 1 row affected. 
REPLACE INTO `routes` VALUES ('3', 'FWL-103', 'BFS', 'LGW', '800', '910')# 1 row affected. 
REPLACE INTO `routes` VALUES ('4', 'FWL-104', 'LGW', 'BFS', '900', '1010')# 1 row affected. 
REPLACE INTO `routes` VALUES ('5', 'FWL-105', 'BFS', 'LGW', '1000', '1110')# 1 row affected. 
REPLACE INTO `routes` VALUES ('6', 'FWL-106', 'LGW', 'BFS', '1100', '1210')# 1 row affected. 
REPLACE INTO `routes` VALUES ('7', 'FWL-107', 'BFS', 'BRU', '700', '915')# 1 row affected. 
REPLACE INTO `routes` VALUES ('8', 'FWL-108', 'BRU', 'BFS', '800', '1015')# 1 row affected. 
REPLACE INTO `routes` VALUES ('9', 'FWL-109', 'BFS', 'HAM', '600', '840')# 1 row affected. 
REPLACE INTO `routes` VALUES ('10', 'FWL-110', 'HAM', 'BFS', '700', '940')# 1 row affected. 
REPLACE INTO `routes` VALUES ('11', 'FWL-111', 'BFS', 'GNB', '1000', '1215')# 1 row affected. 
REPLACE INTO `routes` VALUES ('12', 'FWL-112', 'GNB', 'BFS', '1100', '1415')# 1 row affected. 
REPLACE INTO `routes` VALUES ('13', 'FWL-113', 'LGW', 'BRU', '700', '905')# 1 row affected. 
REPLACE INTO `routes` VALUES ('14', 'FWL-114', 'BRU', 'LGW', '800', '1005')# 1 row affected. 
REPLACE INTO `routes` VALUES ('15', 'FWL-115', 'LGW', 'HAM', '600', '850')# 1 row affected. 
REPLACE INTO `routes` VALUES ('16', 'FWL-116', 'HAM', 'LGW', '700', '950')# 1 row affected. 
REPLACE INTO `routes` VALUES ('17', 'FWL-117', 'LGW', 'GRB', '1000', '1200')# 1 row affected. 
REPLACE INTO `routes` VALUES ('18', 'FWL-118', 'GRB', 'LGW', '1100', '1400')# 1 row affected. 

, 나는 csv 파일을 업로드 한 후 데이터베이스를 갱신 한,이 같은 보여줍니다

싸움 코드는 FWL로 시작하여 옆에 표시된 시간과 함께 숫자가 오름차순으로 표시되어야합니다.

Edit Edit 
Copy Copy 
Delete Delete 
1 
FWL-101 
BFS 
LGW 
600 
710 

Edit Edit 
Copy Copy 
Delete Delete 
10 
FWL-110 
HAM 
BFS 
700 
940 

Edit Edit 
Copy Copy 
Delete Delete 
11 
FWL-111 
BFS 
GNB 
1000 
1215 

Edit Edit 
Copy Copy 
Delete Delete 
12 
FWL-112 
GNB 
BFS 
1100 
1415 

Edit Edit 
Copy Copy 
Delete Delete 
13 
FWL-113 
LGW 
BRU 
700 
905 

Edit Edit 
Copy Copy 
Delete Delete 
14 
FWL-114 
BRU 
LGW 
800 
1005 

Edit Edit 
Copy Copy 
Delete Delete 
15 
FWL-115 
LGW 
HAM 
600 
850 

Edit Edit 
Copy Copy 
Delete Delete 
16 
FWL-116 
HAM 
LGW 
700 
950 

Edit Edit 
Copy Copy 
Delete Delete 
17 
FWL-117 
LGW 
GRB 
1000 
1200 

Edit Edit 
Copy Copy 
Delete Delete 
18 
FWL-118 
GRB 
LGW 
1100 
1400 

Edit Edit 
Copy Copy 
Delete Delete 
2 
FWL-102 
LGW 
BFS 
700 
810 

Edit Edit 
Copy Copy 
Delete Delete 
3 
FWL-103 
BFS 
LGW 
800 
910 

Edit Edit 
Copy Copy 
Delete Delete 
4 
FWL-104 
LGW 
BFS 
900 
1010 

Edit Edit 
Copy Copy 
Delete Delete 
5 
FWL-105 
BFS 
LGW 
1000 
1110 

Edit Edit 
Copy Copy 
Delete Delete 
6 
FWL-106 
LGW 
BFS 
1100 
1210 

Edit Edit 
Copy Copy 
Delete Delete 
7 
FWL-107 
BFS 
BRU 
700 
915 

Edit Edit 
Copy Copy 
Delete Delete 
8 
FWL-108 
BRU 
BFS 
800 
1015 

Edit Edit 
Copy Copy 
Delete Delete 
9 
FWL-109 
BFS 
HAM 
600 
840 
+0

몇 가지 코드를 추가하는 것이 좋습니다. CSV 파일을 어떻게 생성하는지는 분명하지 않습니다. – paqogomez

+0

숫자 대신 문자열로 정렬하는 것처럼 들립니다. –

+0

jpeg 이미지를 추가 할 수 없으므로 수정 사항에 대한 답변을 업데이트했습니다. – Rory

답변

0

는 VARCHAR 필드에 ORDER BY의 값이 "12"이 표시를하게 사용하여 전에 값 "2"- 문자열을 정렬하는 경우이 정확이 아래 잘못된 순서입니다. 데이터베이스에서, 또는하여 위해 적어도,이 같은 일을 수행해야합니다

ORDER BY cast(<my_varchar_field_of_numeric_values> as int) 

당신은 또한 숫자가 아닌 값이 해당 열에 표시 할 수가 있는지 확인해야합니다 (입니다 varchar 필드, 그래서 당신이 모르는) 올바르게 처리됩니다.

+0

나는 여권 번호와 예약 참조 (둘 다 varchar) 열이 있습니다. 그러나, 나는 경로 ID를 int로 변경했으며 이제는 같은 순서로 출력한다. 내가 가지고있는 다른 테이블은 varchar, passport no varchar, route ID를 int로, int를 텍스트로 예약 한 예약입니다. 예약 ref가 기본 키입니다. 이 경로가 이상한 순서로 진행되는 것을 방지하려면 첫 번째 열로 경로 ID가 있어야합니까? – Rory

+0

No.동일한 booking_ref * first *를 갖는 행별로 순서를 지정하려면 passport_no를 입력 한 다음 route_id를 입력 한 다음 해당 순서대로 지정하십시오. 문자 필드는 문자열로 정렬되고 숫자는 숫자로 정렬됩니다. 항상. – SlimsGhost

+0

도움을 주셔서 감사합니다, 나는 지금 그 테이블을 시험해보고 잘만되면 더 이상의 문제는 없을 것입니다. 테이블을 북마크해야합니까? 나는 그것을 저장하지 않는 것 같다. 테이블을 북마크에 추가하고 쿼리를 북마크에 추가합니다. 이미 저장되어 있어도 가져 오기를 북마크에 추가해야합니다. – Rory

관련 문제