【发布时间】:2010-08-16 13:43:18
【问题描述】:
我该如何改变:
SELECT user.postcode, max(postcode.postcode) as postcode
FROM user
INNER JOIN postcode ON user.postcode LIKE CONCAT( postcode.postcode, "%" )
GROUP BY user.postcode
进入类似于?的UPDATE?
UPDATE user
INNER JOIN postcode ON user.postcode LIKE CONCAT(postcode.postcode, "%")
SET user.lat = postcode.lat, user.lng = postcode.lng
我不知道如何考虑 MAX() 和 GROUP BY
回答
下面是我的@ceteras 代码版本。效果很好!
DROP TABLE IF EXISTS tmp;
CREATE TABLE tmp AS
SELECT user.user_id, max(postcode.postcode) AS postcode, postcode.lat, postcode.lng
FROM user
INNER JOIN postcode ON user.postcode LIKE CONCAT( postcode.postcode, "%" )
GROUP BY user.postcode;
ALTER TABLE tmp ADD PRIMARY KEY(user_id);
UPDATE user
INNER JOIN tmp ON user.user_id = tmp.user_id
SET user.lat1 = tmp.lat, user.lng1 = tmp.lng;
DROP TABLE tmp;
【问题讨论】:
-
你为什么使用
LIKE CONCAT(postcode.postcode, "%")?