我有一个列,我想从中提取字符串前后的所有内容。我有以下条目:[{"model": "test.question", "pk": 123456789, "fields": {"status": "graded"}}] [{"model": "test.question", "pk": 123456789, "fields": {"status": "answered"}}] 我想提取“status”后面的子字符串:{“and before}]
[{"model": "test.question", "pk": 123456789, "fields": {"status": "answered"}}]
yshpjwxd1#
sql的 LIKE 关键字将允许您使用 % 作为通配符。剩下的只是纯文本匹配。所以,你应该可以使用 WHERE columnName LIKE 'status":{"%}}] (替换 columnName 当然是你的专栏)。但是,如果表中有结构化数据,则可能需要重新考虑您的选项。mysql有一个json数据类型(参见https://dev.mysql.com/doc/refman/5.7/en/json.html)这可以让您更直接、更正确地查询—例如,如果存在包含该字符串的状态,我上面描述的方法将中断 }}] .如果需要子字符串本身,mysql有一个 substring 函数,在mysql中有详细介绍 SUBSTRING 功能,详见https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substring ,您将在 SELECT 子句,可能使用 LOCATE 获取要在子字符串中使用的索引。如果没有看到您当前的sql,很难描述如何将它们组合在一起。
LIKE
%
WHERE columnName LIKE 'status":{"%}}]
columnName
}}]
substring
SUBSTRING
SELECT
LOCATE
1条答案
按热度按时间yshpjwxd1#
sql的
LIKE
关键字将允许您使用%
作为通配符。剩下的只是纯文本匹配。所以,你应该可以使用WHERE columnName LIKE 'status":{"%}}]
(替换columnName
当然是你的专栏)。但是,如果表中有结构化数据,则可能需要重新考虑您的选项。mysql有一个json数据类型(参见https://dev.mysql.com/doc/refman/5.7/en/json.html)这可以让您更直接、更正确地查询—例如,如果存在包含该字符串的状态,我上面描述的方法将中断
}}]
.如果需要子字符串本身,mysql有一个
substring
函数,在mysql中有详细介绍SUBSTRING
功能,详见https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substring ,您将在SELECT
子句,可能使用LOCATE
获取要在子字符串中使用的索引。如果没有看到您当前的sql,很难描述如何将它们组合在一起。