Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como escrever consulta no MySQL para objetos de matriz JSON


Eu usaria JSON_CONTAINS .. Verifique dbfiddle (mariadb_10.4)

a sintaxe é 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') = '[]'

E o resultado da entrada 1 é

Para a entrada 4 é