У меня есть таблица с именем «Сотрудники», в которой поле местоположения имеет тип int, а в таблице пользователей - «allowLocations», которое является полем json для разрешенных расположений. Проще говоря, я просто помещаю список разрешенных мест в свой запрос, чтобы проверить его, поэтому у меня есть
SELECT * FROM `employees` WHERE JSON_CONTAINS('[1,4,6,7,8,9,10,11,12,13,15,16,17,18]', `location`);enter code here
Итак, если employees
. locaton
равно 1, тогда я смогу увидеть его, но если employees
. locaton
= 3, я не смогу его увидеть.
Моя проблема в том, что мой запрос не выполняется с сообщением: -
Код ошибки: 3146
Неверный тип данных для данных JSON в аргументе 2 для функции json_contains; требуется строка JSON или тип JSON.
Я пытался привести location
к varchar (25), но он все еще не запускается.
Может ли кто-нибудь помочь указать, где я ошибаюсь в этом билете? Я прочитал о JSON_Contains и нескольких других форумах и не могу найти что-нибудь полезное.
Есть идеи?
Спасибо