#mysql #sql #json
На запрос
SELECT JSON_SEARCH('[3]', 'one', 3) as 'index' // в массиве число, ищу число
мне отвечают
[
{
"index": null
}
]
А на запрос
SELECT JSON_SEARCH('[\"3\"]', 'one', '3') as 'index' // в массиве строка, ищу строку
мне отвечают
[
{
"index": "\"$[2]\""
}
]
Но на запрос
SELECT JSON_SEARCH('[\"3\"]', 'one', 3) as 'index' // в массиве строка, ищу число
мне тоже отвечают
[
{
"index": "\"$[2]\""
}
]
Вопрос - как заставить mysql понять, что я ищу число?
Ответы
Ответ 1
Если кратко, то никак. Это баг в MySQL, хотя его и исправили, добавив в документацию, что аргументом JSON_SEARCH () должна быть строка. За состоянием дел можно следить в feature request'е. В MariaDB данной проблемы нет. Однако различий между числовыми и строковыми значениями также не делается. По мотивам Как совместить JSON_REMOVE и JSON_SEARCH в одном запросе?
Комментариев нет:
Отправить комментарий