Mysql
 sql >> Database >  >> RDS >> Mysql

Come scrivere query in MySQL per oggetti array JSON

Userei JSON_CONTAINS .. Controlla dbfiddle (mariadb_10.4)

la sintassi è 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 il risultato per l'input 1 è

Per l'input 4 è