Akina, потестил скорость x3 и поле в php возвращается. Код менять не нужно. Хорошая тема. Могут все-таки быть какие-то несовместимости в коде не в курсе? если просто взять и поменять в таблицах тип данных? (кроме сортировки ключей)
Дмитрий, это все возможности для бага, но мой вопрос был о другом, у меня нет проблем с повторением ключей, там такое вообще невозможно. Этот баг вообще списать на пользователя. А вот фича с сортировкой только моя проблема.
Дмитрий, сделал, но мог не делать, все предсказуемо. PHP перезаписал ключ key1 последним значением. Но при этом сортировку ключей не сделал. Они идут как написаны key1, key3, key2. А mysql сделал.
Akina, компьютер вообще 0 и 1, а дальше слоями что-то накладывается-накладывается. Мне это "бинарный тип данных" не о чем не говорит на каком он уровне. Нужны конкретные примеры, я web-программист, а не ассемблер.
Василий Дёмин, "костыль" целенаправленно вставили в код из-за лени, зная что это плохо. Тут я сделал так давно, я не преследовал цели решить проблему быстро и плохо, но так вышло. И это замечательно работает еще с php 5.
Akina, а вот и нет, скорость я тоже приветствую, а не только красоту и тип данных в таблице стараюсь подбирать. К сожалению конкретных примеров от вас не услышал. Погуглил и тоже ничего не нашел. Тип данных JSON ничем не отличается от текстового кроме проверки на корректность. Не факт, может ошибаюсь.
Василий Дёмин, не волнуйся, я и буду чинить. По факту ты летишь впереди ракеты, предлагаешь чинить уже сейчас, что пока и не сломано и никогда не ломалось и в PHP 8.2 работает как надо.
Дмитрий, я знаю, что в php новый ключ в именном array затрет такой же. Ну это даже не сказать, что логично, я просто представить не могу как может быть по другому. Как это выливается в сортировку не задумывался, но по факту результат сильно разный.
Дмитрий, страница в админке присылает $_POST - это изначально. Проект разросся. А потом разные мелкие скрипты могут еще что-то делать. Хотя конкретно это значение с парами ключей, где важна сортировка меняется только в админке.
Shavadrius, пока жить можно, карточка оффера меняется редко. Оптимизировать конечно надо будет со временем, но там скорее надо будет весь этот JSON раскидать в таблице грамотно. Я что-то не надеюсь, что mysql сильно лучше работает с json, может и ошибаюсь. JSON_REMOVE и прочее я использую потому что так код получается короче и красивее.
Shavadrius, это полностью самописный проект. На самом деле все просто, это карточка оффера, в ней в том числе поля с данными организации, они должны выводиться на сайтах по порядку. JSON_REMOVE даже не затрагивает эти поля, удаляет другие данные оффера, но поля все равно портятся.
Shavadrius, Есть страница в админке откуда порядок приходит уже через $_POST, так было сделано давно, в PHP все работало много лет. Сортировать не выгодно, лишнее место где надо будет застревать, к тому же там ключи на разных языках и могут добавляться.
Единственный нормальный вариант переделать страницу в админке, но тогда изменится сам JSON и надо будет править еще скрипты, которые надо еще вспомнить - пока идеально оставить на PHP.
PHP на ваш стандарт похоже наплевал, все кодируется и раскодируется с сохранением порядка ключей. Вам нужно понимать суть вопроса. А если вам важно и вы считаете в своих силах заниматься научением "как надо правильно" это делать без ненужных эпитетов.
В вашей информации как всегда мало пользы. Хотя если честно я узнал что-то новое про "тип данных JSON" и на том спасибо. И смысл этого типа ? Функции mysql работают на текстовом поле. Он как то иначе хранится и работает быстрее ?
Akina, угомонись, в комментариях уже и те все поняли, мне Lastor сказал JSON тут вычислительно дорого, а другой товарищ сказал, что без JSON глупо - я всем доволен. Общаться с тобой мне не хочется - ты такой же как второй товарищ долго запрягаешь потом просто так же ответишь.
В mariaDB работает ?
https://runebook.dev/ru/docs/mariadb/json-data-typ...