sql >> Databasteknik >  >> RDS >> Mysql

Hur man skriver en fråga i MySQL för JSON-arrayobjekt

Jag skulle använda JSON_CONTAINS .. Kolla dbfiddle (mariadb_10.4)

syntaxen är 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') = '[]'

Och resultat För ingång 1 är

För ingång 4 är



  1. Openshift MYSQL miljövariabler inte inställda

  2. Varför är referenser till wp_postmeta så långsamma?

  3. Arkitektur och inställning av minne i PostgreSQL-databaser

  4. MySQL GeoSpatial funktion för ST_Distance_Spheroid? Mått som används i gengäld Typ av GLängd?