2015-11-04 24 views
6

Mam bazę danych z jedną kolumną, która jest JSON ciągów (np. ["ART", "LIT"] itd.). Chcę go wyszukać, używając json_contains.Nieprawidłowy tekst JSON w argumencie 2 - json_contains w MySQL 5.7.8

Jednak gdy próbuję: błędy

json_contains(\`column_name`,"ART") 

It mówiąc:

Nieprawidłowy tekst JSON w argumencie 2 do json_contains funkcyjnych "nieprawidłowa wartość" w pozycji 0 w "ART".

Należy zauważyć, że json_contains nie powoduje błędu w liczbach w miejscu "ART", tylko z ciągami znaków. Jakiś pomysł, co mogę zrobić, aby rozwiązać ten problem?

Odpowiedz

12

Podobno traktuje liczby całkowite inaczej niż łańcuchy. Podczas gdy json_contains (`column_name`," 1 ") jest poprawnym połączeniem, aby sprawdzić czy zawiera" ART ", musisz użyć json_contains (` column_name`, '"ART"').

To rozwiązało mój problem!

+1

https://dev.mysql.com/doc/refman/5.7/en/json-search-functions.html val jest również typ obiektu JSON ' "ART"' – odedsh

+2

Dziękuję za to. To było cholernie 'doprowadzające mnie do szału. – racl101