我有一个字典术语表,现在我想创建另一个表来保存“主要”术语的 ID 和定义中包含“主要”术语名称的相关术语的 ID -
table: terms
| id | name | definition |
Table: related
| term_id | related_term_id |
在 PHP 中创建 INSERT 语句非常容易:
$result = mysql_query("SELECT * FROM terms");
while ($row = mysql_fetch_array($result)) {
$name = $row['name'];
$result2 = mysql_query("SELECT id,name FROM terms WHERE description LIKE \"%$name%\" AND id!=".$row['id']);
while ($row2 = mysql_fetch_array($result2)) {
echo "INSERT INTO related(term_id,related_term_id) VALUES(".$row['id'].",".$row2['id'].");";
}
}
但是,由于我对 MySQL 没有太多经验,所以我想知道这是否可以纯粹在 SQL 中完成 - 比如使用 INSERT-SELECT 语句?
谢谢!
最佳答案
INSERT INTO related (term_id, related_term_id)
SELECT a.id as term_id, b.id AS related_term_id
FROM terms a, terms b
WHERE a.id != b.id
AND b.description LIKE CONCAT('%', b.name, '%')
关于php - mysql select 相关术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6814927/