Когато тази заявка
UPDATE tabex SET field1=CONCAT(tabex.a1,', ',tabex.a2,', ',tabex.a3,', ',tabex.a4,', ',tabex.a5,', ',tabex.a6,', 'tabex.a7,', ',tabex.a8,', ',tabex.a9 );
не засяга ред, единственото обяснение би било, че таблицата е празна. Ще актуализира всеки ред в таблицата. Но ако една от колоните е NULL, вашата колона field1 също ще бъде NULL.
За да избегнете това, трябва да използвате функцията COALESCE(). Тази функция връща първия от своите параметри, който не е NULL.
UPDATE tabex SET field1=CONCAT(COALESCE(tabex.a1, ''),', ',...);
От друга страна трябва да попитам защо искате да направите това. Стойностите, разделени със запетая в колони, са лоша идея през повечето време.
И накрая, вашата заявка с CONCAT_WS() е грешна. _WS в името на функцията е съкращение от "с разделител", така че първият параметър е разделителят, който след това се поставя между другите параметри на функцията. Така че трябва да го напишете така:
UPDATE tabex SET field1=CONCAT_WS(',', tabex.a1, tabex.a2, tabex.a3,...);
Друго предимство на функцията CONCAT_WS() е, че тя игнорира NULL стойности. Прочетете повече за двете функции в ръководството .