我确信以前曾经问过这个问题,但是我无法完全理解我正在尝试搜索的内容。我认为这是因为我想从第二个表和非关键字段进行。
基本上我有这个courses.keywords表,其中包含不同课程的关键字。
+-----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| course_id | int(11) | NO | MUL | NULL | |
| keyword | varchar(100) | NO | MUL | NULL | |
| excerpt | longtext | NO | | NULL | |
| explained | longtext | NO | | NULL | |
| slug | varchar(100) | NO | | NULL | |
+-----------+--------------+------+-----+---------+----------------+
我从一个旧的wordpress网站中摘录了一个包含许多理论笔记的摘录,这些笔记的标题与上表中的某些关键字相匹配。
+------------------+----------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+----------------+------+-----+---------+-------+
| wp_ID | int(4) | YES | | NULL | |
| wp_post_date | varchar(19) | YES | | NULL | |
| wp_post_modified | varchar(19) | YES | | NULL | |
| wp_post_status | varchar(7) | YES | | NULL | |
| wp_post_title | varchar(35) | YES | | NULL | |
| wp_post_content | varchar(10435) | YES | | NULL | |
| wp_post_excerpt | varchar(224) | YES | | NULL | |
| wp_post_parent | int(1) | YES | | NULL | |
| wp_post_name | varchar(33) | YES | | NULL | |
| wp_post_type | varchar(8) | YES | | NULL | |
+------------------+----------------+------+-----+---------+-------+
如果找到关键字,我想用旧的wordpress数据更新摘录和解释字段,给它一个课程ID为2.如果关键字不存在,我想插入一个新行并给它一个course_id 4。
我从这个from here开始,但还不能完成它。
IF NOT EXISTS (SELECT * FROM `curriculum.keywords` WHERE `keyword` = STUCK HERE) THEN
INSERT INTO `curriculum.keywords` (`keyword`, `excerpt`, `explained`, `slug`, `course_id`)
SELECT `wp_post_title`, `wp_post_excerpt`, `wp_post_content`, `wp_post_name`, 4 FROM `aimport-notes`
ELSE
UPDATE `curriculum.keywords` (`keyword`, `excerpt`, `explained`, `slug`, `course_id`)
SELECT `wp_post_title`, `wp_post_excerpt`, `wp_post_content`, `wp_post_name`, 4 FROM `aimport-notes`
WHERE `curriculum.keywords`.`keyword` = `aimport-notes`.`wp_post_title`
END IF;
感谢您的帮助。
克里斯
答案 0 :(得分:0)
IF NOT EXISTS (
SELECT 1 FROM `curriculum.keywords` kw
INNER JOIN `wordpress` wp
ON wp.wp_post_title LIKE CONCAT( '%', kw.keyword, '%')
)
...
答案 1 :(得分:0)
使用新关键字插入数据的查询:
INSERT INTO `curriculum.keywords` (`keyword`, `excerpt`, `explained`, `slug`, `course_id`)
SELECT notes.`wp_post_title`, notes.`wp_post_excerpt`, notes.`wp_post_content`, notes.`wp_post_name`, 4
FROM `aimport-notes` notes left join `curriculum.keywords` keywords on
notes.keyword=keywords.wp_post_title where keywords.keyword is null;
查询以更新匹配的关键字记录:
update `curriculum.keywords` keywords
inner join `aimport-notes` notes on notes.keyword=keywords.wp_post_title
set keywords.keyword=notes.wp_post_title,
keywords.excerpt=notes.wp_post_excerpt,
keywords.explained=notes.wp_post_content,
keywords.slug=notes.wp_post_name,
keywords.course_id=4;