복붙노트

[SQL] "알 수없는 '필드 목록'에서 열 ',하지만 열이 존재합니까

SQL

"알 수없는 '필드 목록'에서 열 ',하지만 열이 존재합니까

DROP TABLE IF EXISTS `transactions`;
CREATE TABLE `transactions` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `purchase_date` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `transactions` (`purchase_date`) VALUES (NULL)

이 코드에서 내 문제를 격리했습니다. 내가 그것을 실행하면, 나는 오류가 발생합니다 :

누구 아이디어?

해결법

  1. ==============================

    1.인쇄 할 수없는 문자 30 (RecordSeparator) INSERT 문에서 구매 날짜와 '사이에 삽입이있다. 그냥 텍스트 ( '구매 일')를 제거하고 괜찮을 손으로 다시 작성합니다.

    인쇄 할 수없는 문자 30 (RecordSeparator) INSERT 문에서 구매 날짜와 '사이에 삽입이있다. 그냥 텍스트 ( '구매 일')를 제거하고 괜찮을 손으로 다시 작성합니다.

  2. ==============================

    2.네리 틈새 솔루션이 오류를 받았을 때.

    네리 틈새 솔루션이 오류를 받았을 때.

    내가 뭔가를 한 내 테이블에 BEFORE INSERT 트리거를했다 NEW.`field_mysql_doesnt_think_exists` 내가 삽입 문에 해당 필드를 통과하지 못한 경우 다음 내가 얻을 것

    [쿼리 ERROR 3] 필드리스트 '에서 알 칼럼'field_mysql_doesnt_think_exists '

  3. ==============================

    3.난 그냥이 밖으로내는 일의 좋은 부분을 보냈다. 내 문제는 동일 하 : 보이지 않는 문자가 쿼리를 kiboshing하고 "알 수없는 열"오류를 반환.

    난 그냥이 밖으로내는 일의 좋은 부분을 보냈다. 내 문제는 동일 하 : 보이지 않는 문자가 쿼리를 kiboshing하고 "알 수없는 열"오류를 반환.

    나는 윈도우로 다시 넘어 가고 및 ++ 메모장을 사용하여 쓰레기를 제거하여 그것을 해결.

    어떻게 쓰레기는 처음에 거기에 도착 했습니까? 나는 리브레 오피스 라이터로 약간 긴 복잡한 쿼리 (내 기능 사양 문서)을 복사하는 대신에 단지 phpMyAdmin에 그들을 북마크 또는 텍스트 편집기에서 저장의 실수 때문이었다 생각합니다. (내가 생각하는) 쓰레기가 발생한 위치를 쿼리 창으로 LibreOffice와 그들을 붙여 넣으면됩니다.

    일단 거기, 그것은 말라리아처럼 지속되었다. 난 손으로 다시 입력 전체 쿼리를하여 제거 할 수 없습니다 - 내가 메모장으로 ++ (인코딩 메뉴)를 넣고 ANSI와 UTF8 콤보를 보여주고 다음 손으로 쓰레기를 제거했다.

    이 작업이 일단 쿼리가했다.

  4. ==============================

    4.테이블 구조를 구축 할 때 열 이름을 붙여 경우에도 발생할 수 있습니다. 동일한 오류 - 그러나 인쇄 할 수없는 / 보이지 않는 문자는 테이블 구조가 아닌 쿼리에 있습니다.

    테이블 구조를 구축 할 때 열 이름을 붙여 경우에도 발생할 수 있습니다. 동일한 오류 - 그러나 인쇄 할 수없는 / 보이지 않는 문자는 테이블 구조가 아닌 쿼리에 있습니다.

  5. ==============================

    5.이 힘없는 도움의 다른 사람,하지만 추가이 "단지의 경우"누군가를하는 데 도움이됩니다.

    이 힘없는 도움의 다른 사람,하지만 추가이 "단지의 경우"누군가를하는 데 도움이됩니다.

    내 상황에서는 다른 솔루션이었다.

    나는 엑셀 CSV 파일로 대규모 데이터 세트를 수신하여 가져올 수 .SQL 파일로 .csv 파일을 변환하는 (WIL) 스크립트를 사용합니다. 나는 (내가 처음 위치를 하드 코딩하고 업데이트 깜빡했다)이 두 선이 같은 테이블 이름을 참조하지 않았다 이에 내 스크립트에 오류가 발생했습니다 :

    * "INSERT INTO `old_table_name` (`cid`, `date`, etc etc"
    * "CREATE TABLE IF NOT EXISTS `":_dbName:"` (etc etc "
    

    난 그냥 또한 변수와 짜잔에서 테이블 이름을 얻을 수있는 첫 번째 라인을 변경!

    * "INSERT INTO `":_dbName:"` (`cid`, `date`, etc etc"
    

    그래서 가져 오기 SQL 파일에 두 줄을 확인합니다.

  6. ==============================

    6.다른 시나리오의 동일 오류 :

    다른 시나리오의 동일 오류 :

    당신이 변수 기호 @ 놓칠 경우에도 발생합니다.

    SET @myVar1=1;  SELECT @myVar1;  -- GOOD, correctly prints:  1
    SET @myVar1=1;  SELECT  myVar1;  -- BAD, prints:  Unknown column 'myVar1' in 'field list' 
    
  7. ==============================

    7.당신이 취급하고있는 테이블의 이름 봐

    당신이 취급하고있는 테이블의 이름 봐

  8. from https://stackoverflow.com/questions/15989529/unknown-column-in-field-list-but-column-does-exist by cc-by-sa and MIT license