首页 > 解决方案 > 从表中选择与模式匹配的行

问题描述

我正在尝试通过 bash 选择与模式匹配的特定行。但是有些东西不起作用,我得到空输出(选择了 0 条记录。)。代码如下所示:

su --login root -c "db2 connect to TILT; db2 \"select * from TABLE1 where COLUMN4 like '%\"selections\":[{\"college\":[\"9\",\"28\",\"29\",\"34\",\"35\",\"37\",\"48\",\"54\",\"55\",\"67\"]%'\""

我试图访问的 column4 中的行如下所示:

,{"changelog":1},"selections":[{"college":["9","28","29","34","35","37","48","54","55","67"]

我错过了什么?任何帮助表示赞赏。谢谢

标签: bashdb2

解决方案


您对 DB2 参数的引号进行转义,但在其中,引号也应该被转义,以将它们与 db2 参数的结束引号区分开来。还转义已经转义的引号:\\\"

所以改为例如

... '%\"selections\": ...

你应该写

... '%\\\"selections\\\": ...

推荐阅读