您好,我在使用SqlKata的OrderByRaw方法时发现了一个非常奇怪的错误。
var query = new Query("SoftwareVersions").OrderByRaw("string_to_array([version], '.')::int[] DESC")我也在这里测试了https://sqlkata.com/playground/pgsql相同的错误。
问题在于整方括号,它们被转换为“列”,没有任何内容,或者只有两个引号,下面是与SqlKata在运行时生成的结果完全相同的结果:
SELECT * FROM "SoftwareVersions" ORDER BY string_to_array("version", '.') :: int "" DESC注意:在这里你可以看到,在int转换之后,我们有两个引号。
我的问题是如何使用SQLKata避免这种意外行为。
发布于 2020-10-27 21:42:02
默认情况下,对于每个编译器,SqlKata将[]交换为相应的分隔符,这就是为什么你会得到双引号",在MySql中,你可能会得到反引号,依此类推。
要避免这种情况,只需使用反斜杠对它们进行转义。
.OrderByRaw(@"string_to_array([version], '.')::int\[\] DESC")https://stackoverflow.com/questions/64555632
复制相似问题