Mengapa mysql menyimpan json dalam susunan terbalik? bagaimana untuk memperbaikinya
P粉141925181
P粉141925181 2024-02-17 13:04:55
0
1
376

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粉141925181
P粉141925181

membalas semua(1)
P粉090087228

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan