sql >> Base de Datos >  >> RDS >> Mysql

Cómo escribir consultas en MySQL para objetos de matriz JSON

Usaría JSON_CONTAINS .. Marque dbfiddle (mariadb_10.4)

la sintaxis es 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') = '[]'

Y el resultado para la entrada 1 es

Para la entrada 4 es