Мисля, че това е най-единственият чист начин на MySQL, поне за версии на MySQL под 8
Запитване
SET SESSION group_concat_max_len =@@max_allowed_packet;SELECT GROUP_CONCAT( JSON_UNQUOTE( JSON_EXTRACT(records.json, CONCAT('$[', number_generator.number , ']')) ) @ row FROM ( SELECT @ред + 1 КАТО номер ОТ ( SELECT 0 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 ) row1 CROSS JOIN ( SELECT 0 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 ) row2 CROSS JOIN ( SELECT @row :=-1 ) init_user_params ) КАТО number_generator CROSS JOIN (SELECT json( ASrecordsLENGTH). json_array_length ОТ ( ИЗБЕРЕТЕ '["+63(02)3647766", "+63(02)5467329", "+63(02)8555522", "+63(02)3642403"]' КАТО json ОТ ДВОЙНИ записи ) КАТО ) AS записва КЪДЕ число МЕЖДУ 0 И json_array_length - 1
Резултат
<предварителен код>| GROUP_CONCAT( JSON_UNQUOTE( JSON_EXTRACT(records.json, CONCAT('$[', number_generator.number, ']')) )) || -------------------------------------------------- -------------------------------------------------- --------------------- || +63(02)3647766,+63(02)5467329,+63(02)8555522,+63(02)3642403 |вижте демо
Имам, не предполагам, че всички вече са на MySQL 8, но го добавих и за пълнота.
Само заявка за MySQL 8.0
ЗАДАДЕТЕ СЕСИЯ group_concat_max_len =@@max_allowed_packet;ИЗБЕРЕТЕ GROUP_CONCAT(item)FROM JSON_TABLE( '["+63(02)3647766", "+63(02)5467329", "+63(052)25" , "+63(02)3642403"]' , "$[*]" КОЛОНИ ( rowid ЗА ОРДИНАЛНОСТ , елемент VARCHAR(100) ПЪТ "$" )) КАТО json_parsed
Резултат
<предварителен код>| GROUP_CONCAT(елемент) || -------------------------------------------------- --------- || +63(02)3647766,+63(02)5467329,+63(02)8555522,+63(02)3642403 |вижте демо
REPLACE()
методът на влагане е по-разхвърлян, но трябва да работи на всички версии на MySQL.
ИЗБЕРЕТЕ ЗАМЕНИ( ЗАМЕНИ( ЗАМЕНИ( '["+63(02)3647766", "+63(02)5467329", "+63(02)8555522", "+63(02)3642403" ]' , '[' , '' ) , ']' , '' ) , '"' , '' )
Резултат
<предварителен код>| ЗАМЕНИ( ЗАМЕНИ( ЗАМЕНИ( '["+63(02)3647766", "+63(02)5467329", "+63(02)8555522", "+63(02)3642403"]', '[' , '' ) , ']' , '' ) , '"' , '' ) || ---------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ---------------- || +63(02)3647766, +63(02)5467329, +63(02)8555522, +63(02)3642403 |вижте демо