Как найти что-то, где содержится в JSON - PullRequest
0 голосов
/ 14 июня 2019

У меня есть такой класс.

@Entity
@Table(name = "permissions")
public class Permission {

    public Permission(){}

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @JsonIgnore
    @Version
    private int version;


    @JsonIgnore
    @Convert(converter = JpaConverterJson.class)
    @Column(name = "sub_category", columnDefinition = "json")
    private List<Integer> subCategory = new ArrayList<>();

    .
    .
    .


    <Setter Getter>
    ....

, и я храню список целых чисел в базе данных как JSON Type, как это.

[349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365] как JSON, и я используюMYSQL.

Мне нужно найти, чтобы все разрешения содержались в этом списке.

например: у меня 10 строк permission, как мне найти 350 там, где уже существуеткакая-то строка.

если я делаю запрос в MySQL, может быть что-то вроде этого.1021 *

1 Ответ

0 голосов
/ 15 июня 2019

Я нашел решение этой проблемы.

Я использую запрос, подобный этому.

SELECT  DISTINCT permissions.*
FROM permissions, JSON_TABLE(sub_category, "$[*]" COLUMNS(nr INT PATH '$')) as ids  where ids.nr  = 349;

Этот запрос поможет вам найти, где 349 находится в JSON сзначение [123,349,350,452,344,67,676,2,4,666,7334,4353453,65,56,745]

ПРИМЕЧАНИЕ: Этот запрос работает только в Mysql версии 8.x

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...