У меня есть столбец, из которого я хочу извлечь все до и после строки. У меня есть следующая запись:
[{"model": "test.question", "pk": 123456789, "fields": {"status": "graded"}}]
[{"model": "test.question", "pk": 123456789, "fields": {"status": "answered"}}]
Я хочу извлечь подстроку после "status": {" и before }}]
Ключевое слово 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, сложно описать, как это должно быть собрано вместе.