여기에 이런 버그가 많이 있지만이 쿼리는 삽입 쿼리와 다르게 보입니다. 여기INSERT 쿼리에서 Mysql 잘린 DOUBLE 값이 잘림되지 않았습니다.
CREATE TABLE card_info (
card_id mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
card_name_orig varchar(150) NOT NULL,
card_name_html varchar(150) NOT NULL,
card_name_search varchar(150) NOT NULL,
card_name_page varchar(150) NOT NULL,
card_cost varchar(50) DEFAULT NULL,
card_cost_converted tinyint(2) NOT NULL DEFAULT '0',
card_subtype varchar(75) DEFAULT NULL,
card_oracle_text_orig text,
card_oracle_text_html text,
card_power varchar(10) DEFAULT NULL,
card_toughness varchar(10) DEFAULT NULL,
card_loyalty tinyint(1) DEFAULT NULL,
PRIMARY KEY (card_id),
KEY card_name_nd (card_name_search),
KEY card_name_page (card_name_page),
KEY card_cost_converted (card_cost_converted),
KEY card_power (card_power),
KEY card_toughness (card_toughness),
KEY card_loyalty (card_loyalty),
FULLTEXT KEY card_oracle_text_orig (card_oracle_text_orig),
FULLTEXT KEY card_name_search (card_name_search)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
그리고 내 쿼리입니다 : 다음은 테이블 card_info에 대한 스키마는
INSERT INTO card_info (
card_name_orig, card_name_html, card_name_search, card_name_page, card_cost,
card_cost_converted, card_subtype, card_oracle_text_orig, card_oracle_text_html,
card_power, card_toughness, card_loyalty
)
SELECT DISTINCT
d.name_orig, d.name_html, d.name_search, d.name_page, d.cost,
COALESCE(d.cost_converted, 0), d.type_sub, d.oracle_text_orig,
d.oracle_text_html, d.`power`, d.toughness, d.loyalty
FROM card_info_de d
LEFT OUTER JOIN card_info i ON d.name_search = i.card_name_search
WHERE i.card_id IS NULL
AND d.edition_id = 'isd'
ORDER BY (d.collector_number + 0), d.collector_number;
나는이 쿼리를 수행 할 경우,이 오류 받고 있어요 :
1292 - 잘못된 잘린다을 DOUBLE 값 : '181a'는
값 181a가 열 card_info_de
에서 대상이므로주의 해주십시오. collector_number
이고 VARCHAR (5) 필드이고 해당 필드는 card_info
테이블에 삽입되지 않고 select 쿼리의 order 절에서만 사용됩니다.
SELECT
부터 시작하는 쿼리 만 수행하면 정확한 결과가 선택되었음을 알 수 있지만 삽입 할 때 위의 오류가 표시됩니다. 참고 : SELECT 쿼리에서 ORDER BY 절을 제거하면 올바르게 삽입됩니다. 나는 내가 뭘 잘못하고 있는지 모른다.
미리 감사드립니다.
당신은 테이블 card_info에 대한 스키마를 공유 할 수 있습니까 –
나는 T를 업데이 트했습니다 그는 스키마에 의문을 제기한다. 시간 내 주셔서 감사합니다. – voldomazta