我从 MySQL 数据库转换为 SQL Server。
在一个专栏中,我正在寻找一个字符串:
“状态”:“已解决”
请注意,引号实际上是在列中。
在 MySQL 中,我有功能 ---
instr(child_events, '\"status\":\"solved\"')>0
请注意,我正在使用反斜杠转义双引号(全部四个)。这正如预期的那样工作。
现在,我在 SQL Server 中有完全相同的数据(已验证)。
我正在执行功能:
charindex('\"status\":\"solved\"', child_events)>0
并且
charindex('""status"":""solved""', child_events)>0
这是失败的。它带回了几行(第一行可能是实际行的 2%,第二行可能是 0%)。但后来我说简单地找到:
解决了
然后它找到所有结果。
这里发生了什么?为什么不charindex
工作?列数据类型是varchar(max)
——我最初是从文本数据类型转换它的(我习惯于 MySQL)——所以也许这不起作用。列的长度也可以很长——可能最多 300 或 400 个字符。任何想法都非常感谢。