這當然可以優化,但它的工作原理:
CREATE TABLE test (id INT(9) NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL);
INSERT INTO test (id, name) VALUES ('', 'berlin');
INSERT INTO test (id, name) VALUES ('', 'ber lin');
INSERT INTO test (id, name) VALUES ('', 'ber-lin');
INSERT INTO test (id, name) VALUES ('', 'Berlin');
INSERT INTO test (id, name) VALUES ('', 'Hamburg');
INSERT INTO test (id, name) VALUES ('', 'New York');
INSERT INTO test (id, name) VALUES ('', 'NewYork');
CREATE TABLE tmp_clean_text (id INT(9) NOT NULL, name VARCHAR(50) NOT NULL);
INSERT INTO tmp_clean_text (id, name) SELECT id, REPLACE(REPLACE(LOWER(name), ' ', ''), '-', '') FROM test;
CREATE TABLE results (name VARCHAR(50) NOT NULL);
INSERT INTO results (name) SELECT DISTINCT name FROM tmp_clean_text;
UPDATE results SET results.name = CONCAT(results.name, ' ', (
SELECT GROUP_CONCAT(tmp_clean_text.id)
FROM tmp_clean_text
WHERE tmp_clean_text.name = results.name
));
DROP TABLE tmp_clean_text;
你想在這裏做什麼?你想做全文搜索嗎? – 2014-10-31 23:52:16
http://www.postgresonline.com/journal/archives/158-Where-is-soundex-and-other-warm-and-fuzzy-string-things.html – Donal 2014-10-31 23:53:41
@SleimanJneidi那麼,不知道它是否是全文。在上面的例子中,我只想在一個新的表中看到如下結果:BERLIN 1,2,3,4 HAMBURG 5 NEWYORK 6,7 – dc10 2014-10-31 23:55:49