Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment écrire une requête dans MySQL pour les objets de tableau JSON

J'utiliserais JSON_CONTAINS .. Vérifiez dbfiddle (mariadb_10.4)

la syntaxe est JSON_CONTAINS(target, candidate[, path])

SELECT
    *
FROM
    `student`
WHERE
    JSON_CONTAINS(JSON_EXTRACT(`val`, '$.stdran'), '1') 
    OR JSON_EXTRACT(`val`, '$.stdran') IS NULL 
    OR JSON_EXTRACT(`val`, '$.stdran') = '[]'

Et le résultat pour l'entrée 1 est

Pour l'entrée 4 est