我正在尝试使用临时表进行UPDATE查询:
CREATE TEMPORARY TABLE bookings_temporary AS (
SELECT
bookings_clients_options_data.bookings_client_option_data_id AS id
FROM
bookings_clients_options
INNER JOIN
bookings_attendees
ON (bookings_clients_options.client_id = '3')
INNER JOIN bookings_clients_options_data ON (bookings_clients_options_data.bookings_client_option_id = '4')
AND (bookings_clients_options.bookings_client_option_id = bookings_clients_options_data.bookings_client_option_id)
AND (bookings_clients_options_data.booking_attendee_id = bookings_attendees.booking_attendee_id)
AND (bookings_clients_options_data.value = 'Y')
ORDER BY id
);
UPDATE bookings_clients_options_data
SET status_booking='sent'
WHERE bookings_client_option_data_id IN (
SELECT GROUP_CONCAT(id) FROM bookings_temporary WHERE id > 0
);
DROP TABLE bookings_temporary
当用于填充临时表的SELECT查询返回有效数据时,当我运行整个查询时,出现错误:
#1260 - Row 147 was cut by GROUP_CONCAT()
我尝试使用LIMIT子句附加SELECT查询,该子句适用于前100个,但随后在下一个100处卡住,其中包含有问题的行147。
我不确定如何检查第147行,因为它包含在临时表中,并且其行号与原始表不对应。
可能整件事都错了,但由于我无法超越错误,我无法再就此发表意见。
此外,这似乎与group_concat_max_len无关,因为SELECT查询返回的行数仅为810,低于默认的1024。
非常感谢任何建议。