У меня есть поле json custom_fields , и я хочу вставить новый путь с целочисленным значением другого пути в том же поле JSON. Выбор целочисленного значения работает для себя, но не в JSON_INSERT. Как я могу это сделать? < /P>
UPDATE product_translation
SET custom_fields = JSON_INSERT(custom_fields, '$."sorting"', SELECT CAST(JSON_EXTRACT(custom_fields, '$."product_attr4"') AS SIGNED) FROM product_translation)
WHERE JSON_CONTAINS_PATH(custom_fields, '$."product_attr4"')
< /code>
Редактировать:
@Barmar's Hint использовать json_unquote () < /code> принес мне лишню:
Использование в обновлении < /code>, вызывает SQL-fehler (1292): урисованный incorrect integer value: '15b' < /code>.SELECT JSON_VALUE(custom_fields, '$."product_attr4"') AS attr4, CAST(JSON_EXTRACT(custom_fields, '$."product_attr4"') AS SIGNED) AS attr4int FROM product_translation
WHERE JSON_SEARCH(custom_fields, 'one', '15b')
< /code>
Показывает 16 строк с < /p>
attr4 < /th>
attr4int < /th>
. />
15b < /td>
15 < /td>
< /tr>
< /tbody>
< /table> < /div>
Но 16x Warnings: Warnung: (3156). Необходимо json value для актерского состава в COANDGER_EX. 16)
Если я сделаю
SELECT JSON_VALUE(custom_fields, '$."product_attr4"') AS attr4, CAST(JSON_UNQUOTE(JSON_EXTRACT(custom_fields, '$."product_attr4"')) AS SIGNED) AS attr4int FROM product_translation
WHERE JSON_SEARCH(custom_fields, 'one', '15b')
< /code>
с тем же выводом, но после предупреждений Warnung: (1292) усеченное неверное целое значение: '15b' < /code>
Если я сделаю < /p>
SELECT JSON_EXTRACT(custom_fields, '$."migration_AQ-SW5_product_attr4"') AS attr4, CAST(JSON_EXTRACT(custom_fields, '$."migration_AQ-SW5_product_attr4"') AS SIGNED) AS attr4int FROM product_translation
WHERE JSON_CONTAINS_PATH(custom_fields, 'one', '$."migration_AQ-SW5_product_attr4"')
Нет предупреждений, и выход, как и ожидалось. {
"product_attr1": "7003868041, 700.3.86.804.1",
"product_attr2": "0",
"product_attr3": "0",
"product_attr4": "15b",
"product_attr6": 0,
"product_attr7": 1,
"product_attr8": 0,
"product_attr9": 0,
"product_attr10": 0,
"product_attr13": "0",
"setarticle_discount_type": 0,
"setarticle_discount_value": 0.0,
"setarticle_is_set_article": 0,
"setarticle_discount_automatically": 0,
"setarticle_calculate_price_automatically": 0
}
< /code>
> mysql --version
mysql Ver 8.0.42-33 for Linux on x86_64 (Percona Server (GPL), Release '33', Revision '9dc49998')
Подробнее здесь: https://stackoverflow.com/questions/796 ... t-in-mysql
Как провести путь json_insert со значением выбора в MySQL? ⇐ MySql
Форум по Mysql
-
Anonymous
1749723981
Anonymous
У меня есть поле json custom_fields , и я хочу вставить новый путь с целочисленным значением другого пути в том же поле JSON. Выбор целочисленного значения работает для себя, но не в JSON_INSERT. Как я могу это сделать? < /P>
UPDATE product_translation
SET custom_fields = JSON_INSERT(custom_fields, '$."sorting"', SELECT CAST(JSON_EXTRACT(custom_fields, '$."product_attr4"') AS SIGNED) FROM product_translation)
WHERE JSON_CONTAINS_PATH(custom_fields, '$."product_attr4"')
< /code>
Редактировать:
@Barmar's Hint использовать json_unquote () < /code> принес мне лишню:
Использование в обновлении < /code>, вызывает SQL-fehler (1292): урисованный incorrect integer value: '15b' < /code>.SELECT JSON_VALUE(custom_fields, '$."product_attr4"') AS attr4, CAST(JSON_EXTRACT(custom_fields, '$."product_attr4"') AS SIGNED) AS attr4int FROM product_translation
WHERE JSON_SEARCH(custom_fields, 'one', '15b')
< /code>
Показывает 16 строк с < /p>
attr4 < /th>
attr4int < /th>
. />
15b < /td>
15 < /td>
< /tr>
< /tbody>
< /table> < /div>
Но 16x Warnings: Warnung: (3156). Необходимо json value для актерского состава в COANDGER_EX. 16)
Если я сделаю
SELECT JSON_VALUE(custom_fields, '$."product_attr4"') AS attr4, CAST(JSON_UNQUOTE(JSON_EXTRACT(custom_fields, '$."product_attr4"')) AS SIGNED) AS attr4int FROM product_translation
WHERE JSON_SEARCH(custom_fields, 'one', '15b')
< /code>
с тем же выводом, но после предупреждений Warnung: (1292) усеченное неверное целое значение: '15b' < /code>
Если я сделаю < /p>
SELECT JSON_EXTRACT(custom_fields, '$."migration_AQ-SW5_product_attr4"') AS attr4, CAST(JSON_EXTRACT(custom_fields, '$."migration_AQ-SW5_product_attr4"') AS SIGNED) AS attr4int FROM product_translation
WHERE JSON_CONTAINS_PATH(custom_fields, 'one', '$."migration_AQ-SW5_product_attr4"')
Нет предупреждений, и выход, как и ожидалось. {
"product_attr1": "7003868041, 700.3.86.804.1",
"product_attr2": "0",
"product_attr3": "0",
"product_attr4": "15b",
"product_attr6": 0,
"product_attr7": 1,
"product_attr8": 0,
"product_attr9": 0,
"product_attr10": 0,
"product_attr13": "0",
"setarticle_discount_type": 0,
"setarticle_discount_value": 0.0,
"setarticle_is_set_article": 0,
"setarticle_discount_automatically": 0,
"setarticle_calculate_price_automatically": 0
}
< /code>
> mysql --version
mysql Ver 8.0.42-33 for Linux on x86_64 (Percona Server (GPL), Release '33', Revision '9dc49998')
Подробнее здесь: [url]https://stackoverflow.com/questions/79654781/how-to-json-insert-a-path-with-the-value-of-a-select-in-mysql[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия