Nic*_*ner 2 sql foreach drupal-6
我不太确定如何在SQL中执行此操作.这是伪代码:
term_nodesVALUES((对应于Y的tid),4,(节点X的nid))(对应于Y的tid)由下式给出
SELECT `tid` FROM `term_data` WHERE `name` = Y
Run Code Online (Sandbox Code Playgroud)
(我正试图在Drupal 6中分配分类法).
我怎样才能做到这一点?
你真的不想做像foreach这样的事情.不要将SQL视为程序性的,就像大多数代码一样(你做一件事,然后是第二件,依此类推).您需要将其视为基于集合,在哪里可以满足某些要求的大块.就像是:
INSERT INTO term_nodes (tid, x, nid) -- these are the field names
<subquery that selects all the data>
Run Code Online (Sandbox Code Playgroud)
子查询应该只选择要插入的所有数据,可能是这样的:
SELECT nodeId, 4, termId FROM nodes WHERE contentType = X
Run Code Online (Sandbox Code Playgroud)
所以把它们放在一起,你得到:
INSERT INTO term_nodes (tid, x, nid)
SELECT nodeId, 4, termId FROM nodes WHERE contentType = X
Run Code Online (Sandbox Code Playgroud)
无需尝试遍历子查询中的每个元素并一次插入一个元素,只需一次完成所有操作即可.
这是一篇关于程序与基于集合的SQL的好文章,它可以帮助您更好地理解这个概念.
| 归档时间: |
|
| 查看次数: |
447 次 |
| 最近记录: |