Rumah  >  Soal Jawab  >  teks badan

Mengapa mysql menyimpan json dalam susunan terbalik? bagaimana untuk memperbaikinya

Ini adalah kod untuk memasukkan json dalam sql saya

function insert_ema($json){

$a= new Sql();
$b=$a->connection;
$sql = "INSERT INTO ema (ema_ten) VALUES ('$json')";

if ($b->query($sql) === TRUE) {
echo PHP_EOL." New record created successfully \n";
} else {
echo PHP_EOL." Error: " . $sql . "<br>" . $b->error;
}
$b->close();


;}

insert_ema('{"firstName":"John", "lastName":"Doe","3":"Jo", "4":"Do"}');

+----------------------------------------------------------------+----+
| ema_ten                                                        | id |
+----------------------------------------------------------------+----+
| {"3": "Jo", "4": "Do", "lastName": "Doe", "firstName": "John"} |  1 |
| {"3": "Jo", "4": "Do", "lastName": "Doe", "firstName": "John"} |  2 |
+----------------------------------------------------------------+----+

Sql yang disimpan di atas adalah dalam susunan terbalik! ! Bagaimana saya boleh membetulkannya

Sebab saya ingin berpegang pada perintah itu ialah saya ingin dapat menukar json kepada tatasusunan dan menggunakan pop .

Saya rasa MySQL harus menyimpan tatasusunan dan menyusunnya untuk masalah ini.

P粉141925181P粉141925181245 hari yang lalu350

membalas semua(1)saya akan balas

  • P粉090087228

    P粉0900872282024-02-18 11:01:52

    https://dev.mysql.com/doc/refman /8.0/en/json.html berkata:

    Ini bermakna anda tidak seharusnya bergantung pada sebarang susunan pengisihan khusus kekunci dalam objek JSON. Tatasusunan JSON mempunyai susunan, tetapi kunci objek JSON tidak.

    Jika kunci objek JSON dan nilai masing-masing adalah sama, ia adalah sama tanpa mengira susunan:

    mysql> select cast('{"firstName":"John", "lastName":"Doe","3":"Jo", "4":"Do"}' as json) 
      = cast('{"3": "Jo", "4": "Do", "lastName": "Doe", "firstName": "John"}' as json) 
      as is_equal;
    +----------+
    | is_equal |
    +----------+
    |        1 |
    +----------+

    Balas komen anda:

    Maksud contoh di atas ialah anda tidak boleh membuat MySQL menyimpan kunci mengikut susunan yang anda mahu. Pelaksanaan JSON MySQL tidak melakukan ini. Ia menyusun semula kunci objek JSON untuk meningkatkan kecekapan carian. Anda tidak mempunyai suara dalam hal ini.

    Tatasusunan JSON boleh diisih. Jadi satu-satunya pilihan untuk mengekalkan susunan ialah menggunakan tatasusunan, di mana setiap elemen tatasusunan ialah objek dengan satu kunci:

    [{"firstName":"John"}, {"lastName":"Doe"}, {"3":"Jo"}, {"4":"Do"}]

    Saya tahu ini bukan apa yang anda minta, tetapi apa yang anda minta tidak mungkin dalam MySQL.

    balas
    0
  • Batalbalas