Но вы не сравниваете числовые данные, не так ли?
Я вижу, что вы думаете, price
содержит число, но это не так.Содержит значение JSON.Это может быть числом, или это может быть текст, или массив, или объект, или объект, содержащий массивы объектов, содержащих ...
Вы можете сказать «но ключназывается 'цена', конечно, это число ", но это бесполезно для PostgreSQL, особенно если я приду и украдкой вставлю объект, содержащий массивы объектов, содержащих ... 1
Итак, если вы хотите, чтобы число сравнивалось с вами, вам нужно преобразовать его в число (t.data->>price)::NUMERIC
или преобразовать целевое значение в JSON и позволить PostgreSQL выполнить сравнение на основе JSON (которое может делать то, что вы хотите,это может не произойти - я не знаю, какие именно правила для JSON).
1 И это именно то, что я бы сделал, хотя это Рождество,Я плохой человек.