Получить все до и после символа / шаблона в строке

0

У меня есть столбец, из которого я хочу извлечь все до и после строки. У меня есть следующая запись:

[{"model": "test.question", "pk": 123456789, "fields": {"status": "graded"}}] [{"model": "test.question", "pk": 123456789, "fields": {"status": "answered"}}]

Я хочу извлечь подстроку после "status": {" и before }}]

Теги:

1 ответ

0

Ключевое слово SQL LIKE позволит вам использовать % в качестве подстановочного знака. Остальное - просто прямое соответствие текста. Итак, вы должны иметь возможность использовать что-то вроде

WHERE columnName LIKE 'status":{"%}}]

(замените columnName на ваш столбец, конечно).


Однако, если у вас есть структурированные данные в таблице, вы можете пересмотреть свои варианты. MySQL имеет тип данных JSON (см. Https://dev.mysql.com/doc/refman/5.7/en/json.html), который может позволить вам запрашивать более прямо и правильно - например, описанный выше подход будет разорваться, если какой-либо статус существует, который включает строку }}].


Если вы хотите, чтобы сама подстрока, MySQL имеет функцию substring, подробная информация в MySQL имеет функцию SUBSTRING, подробно SUBSTRING на странице https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substring, которая вы должны использовать в своем предложении SELECT, возможно, используя LOCATE чтобы получить индекс для использования в подстроке. Не видя своего текущего SQL, сложно описать, как это должно быть собрано вместе.

  • 0
    Я хочу, чтобы подстрока "оценивалась" и "отвечала", которая находится между "status": {" и }}]
  • 0
    Я отредактировал немного больше описания того, как вам нужно изменить свое предложение SELECT, чтобы получить именно это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню