0

我有一个表,我需要在其中将 verse 表中的值连接到章节表。仅当 verse 字段值以插入符号 ('^') 开头时才应执行此操作。他们都共享 entity_id 列。

我进行了以下选择查询,并得到了我需要的值:

SELECT 
chapter.field_bible_chapter_value,
verse.field_bible_verse_value,
verse.entity_id
FROM field_data_field_bible_verse AS verse
INNER JOIN field_data_field_bible_chapter AS chapter
ON chapter.entity_id = verse.entity_id
WHERE verse.field_bible_verse_value LIKE '^%'
ORDER BY verse.entity_id

现在我被困在尝试使用这些数据对章节字段进行实际更改。

我应该如何处理这个?

4

2 回答 2

1

如果我正确理解要求,请尝试以下 sql:

UPDATE field_data_field_bible_verse AS verse
INNER JOIN field_data_field_bible_chapter AS chapter
ON chapter.entity_id = verse.entity_id
SET chapter.field_bible_chapter_value = concat(verse.field_bible_verse_value,' ',chapter.field_bible_chapter_value)
WHERE verse.field_bible_verse_value LIKE '^%'

逻辑如下:

IF entity_id is equal THEN
    IF the verse_value starts with '^' THEN
       Concatenate verse value with chapter value
       Replace chapter value with the concatenated value
于 2013-07-19T04:03:38.477 回答
0

看来你想要一个多表更新。语法非常简单,请参阅http://dev.mysql.com/doc/refman/5.0/en/update.html

对于您的示例,这将类似于

UPDATE field_data_field_bible_verse AS verse
INNER JOIN field_data_field_bible_chapter AS chapter
ON chapter.entity_id = verse.entity_id
SET chapter.TARGET_COLUMN = concat(YOUR_VALUES)
WHERE verse.field_bible_verse_value LIKE '^%'

(您必须SET使用正确的名称和值填写该行)

于 2013-07-18T16:29:09.753 回答