各位前輩好,我在整理中華職棒逐球資料,在測試SQL code後,MySQL workbench回饋的訊息有些地方不明瞭,請各位出手相助
主要table是chinese_column_full_season, 有58876 rows,column-場地在update前大部分是空白的
輔助用table是game_information, 有column-場地,
兩張table靠column-game_no比對
這是我的SQL code, 要把cpbl_chinese_column_full_season的場地update
UPDATE `test_chinese_column_full_season` t, `game_information` g
SET t.`場地` = g.`ball_park` WHERE t.`game_no` = g.`game_no`
update後, mysql回饋訊息如下圖:
我對上面這段code的理解是,game_no比對通過後, 就會把t.場地
的內容改成 g.ball_park
,那麼訊息應該要出現changed: 58826 rows, 但卻只出現changed: 51108 rows
之後我用了下面的code進行了一次確認
SELECT distinct `場地`
FROM cpbl.test_chinese_column_full_season
只有出現這5個選項:
這是否代表著我的主要table,場地
那個colmn,已經全部都update了?
請各位幫幫忙解讀一下,感恩!!
CREATE TABLE test_chinese_column_full_season(
`場地` varchar(60),
`game_no` varchar(60));
INSERT INTO test_chinese_column_full_season
(`場地`,`game_no`)
VALUES
('A','1'),
('B','1'),
('C','1'),
('D','1'),
('E','1'),
('A','2'),
('B','2'),
('C','2'),
('D','2'),
('E','2'),
('A','3'),
('B','3'),
('C','3'),
('D','3'),
('E','3');
-- 方法一:未變更資料
SELECT *
FROM test_chinese_column_full_season AS t
WHERE t.`場地` NOT IN (
SELECT g.`ball_park`
FROM game_information AS g
WHERE t.`game_no` = g.`game_no`
)
-- 方法二:未變更資料筆數
SELECT COUNT(1) AS `Counter`
FROM test_chinese_column_full_season AS t
WHERE t.`場地` NOT IN (
SELECT g.`ball_park`
FROM game_information AS g
WHERE t.`game_no` = g.`game_no`
)
-- 方法三:變更後資料資料(目視差異)
SELECT *
FROM test_chinese_column_full_season;
rogeryao
我的update有將場地更新了,但我不會確認...
謝謝roger大大,學了好幾招確認的手法!!