SQL Error (1064)
Résolu/Fermé
Lemjid
Messages postés
71
Date d'inscription
mardi 26 février 2019
Statut
Membre
Dernière intervention
15 juillet 2021
-
Modifié le 17 mai 2021 à 12:51
Lemjid Messages postés 71 Date d'inscription mardi 26 février 2019 Statut Membre Dernière intervention 15 juillet 2021 - 17 mai 2021 à 19:12
Lemjid Messages postés 71 Date d'inscription mardi 26 février 2019 Statut Membre Dernière intervention 15 juillet 2021 - 17 mai 2021 à 19:12
A voir également:
- Error 1064 (42000)
- Cmos checksum error ✓ - Forum Carte-mère/mémoire
- Error 0x80070643 - Accueil - Windows
- Cpu over temperature error - Forum Matériel & Système
- Error 10 pioneer ✓ - Forum Autoradio
- Fan error lenovo - Forum Refroidissement
3 réponses
Lemjid
Messages postés
71
Date d'inscription
mardi 26 février 2019
Statut
Membre
Dernière intervention
15 juillet 2021
17 mai 2021 à 15:37
17 mai 2021 à 15:37
quelqu'un a une idée ?
jordane45
Messages postés
38369
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 janvier 2025
4 722
17 mai 2021 à 17:26
17 mai 2021 à 17:26
Ah ben si tu ne nous donnes pas toutes les infos dès le départ......... :-(
Donc, à part faire une fonction personnalisée, le format JSON n'est en effet pas dispo avant la version 5.7
Je t'invite à regarder cette discussion :
https://stackoverflow.com/questions/37816269/how-to-get-values-from-mysql5-6-column-if-that-contains-json-document-as-strin
Donc, à part faire une fonction personnalisée, le format JSON n'est en effet pas dispo avant la version 5.7
Je t'invite à regarder cette discussion :
https://stackoverflow.com/questions/37816269/how-to-get-values-from-mysql5-6-column-if-that-contains-json-document-as-strin
#jsonanalytic function DELIMITER $$ DROP FUNCTION IF EXISTS `json_extract_c`$$ CREATE FUNCTION `json_extract_c`( details TEXT, required_field VARCHAR (255) ) RETURNS TEXT CHARSET latin1 BEGIN SET details = SUBSTRING_INDEX(details, "{", -1); SET details = SUBSTRING_INDEX(details, "}", 1); RETURN TRIM( BOTH '"' FROM SUBSTRING_INDEX( SUBSTRING_INDEX( SUBSTRING_INDEX( details, CONCAT( '"', SUBSTRING_INDEX(required_field,'$.', -1), '":' ), -1 ), ',"', 1 ), ':', -1 ) ) ; END$$ DELIMITER ;
Lemjid
Messages postés
71
Date d'inscription
mardi 26 février 2019
Statut
Membre
Dernière intervention
15 juillet 2021
17 mai 2021 à 18:30
17 mai 2021 à 18:30
Oui c'est ca , j'ai le résultat avec : SELECT json_extract_c (params,"$.io240") FROM gs_object;
J'utilise PHP donc pour faire insert from select j'ai fait comme ca :
$sql = "INSERT INTO gs_dat (io1)
SELECT
(json_extract_c (gs.params,"$.io1")) io1
FROM gs_objects gs;
qui retourne : ( ! ) Parse error: syntax error, unexpected '$' in
J'utilise PHP donc pour faire insert from select j'ai fait comme ca :
$sql = "INSERT INTO gs_dat (io1)
SELECT
(json_extract_c (gs.params,"$.io1")) io1
FROM gs_objects gs;
qui retourne : ( ! ) Parse error: syntax error, unexpected '$' in
jordane45
Messages postés
38369
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 janvier 2025
4 722
>
Lemjid
Messages postés
71
Date d'inscription
mardi 26 février 2019
Statut
Membre
Dernière intervention
15 juillet 2021
17 mai 2021 à 19:05
17 mai 2021 à 19:05
Tu as utilisé les doubles côte à l'intérieur d'une chaîne qui est elle-même entre double quote...
Lemjid
Messages postés
71
Date d'inscription
mardi 26 février 2019
Statut
Membre
Dernière intervention
15 juillet 2021
17 mai 2021 à 19:12
17 mai 2021 à 19:12
il faut un simple cote :
$sql = "INSERT INTO gs_dat (io1)
SELECT
(json_extract_c (gs.params,'$.io1')) io1
FROM gs_objects gs;
$sql = "INSERT INTO gs_dat (io1)
SELECT
(json_extract_c (gs.params,'$.io1')) io1
FROM gs_objects gs;
17 mai 2021 à 16:30
17 mai 2021 à 16:31
17 mai 2021 à 16:48
17 mai 2021 à 17:06
Donc, dans la bdd, tu as un champ de type varchar (le champs Params ) qui contient une string qui représente un JSON.
As tu essayé de faire un CAST de la colonne dans ta requête et utiliser ou sous requête ?
Un truc du genre
Voir la doc pour manipuler les JSON si besoin
https://dev.mysql.com/doc/refman/8.0/en/json.html
17 mai 2021 à 17:22
/* SQL Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '>'$.io240'
FROM (SELECT CAST(params as JS' at line 1 */