我正在尝试使用存储库查找来编写查询,但似乎没有找到适合我的查询的解决方案。我知道这可以通过查询生成器或 Raw() 条件实现,但如果可能的话,我想使用存储库查找。
我想要实现的条件是field1 = 'string' AND (field2 IS NULL OR field2 >= Date())。
目前唯一适合我的解决方案是:
where: [
{ param1: 'string', field2: IsNull() },
{ param1: 'string', field2: MoreThenOrEqual(new Date() ) }
]
Run Code Online (Sandbox Code Playgroud)
但这将转换为(field1 = 'string' AND field2 IS NULL) OR (field1 = 'string' OR field2 >= Date())
我尝试过类似的东西:
where: [
{ param1: 'string', field2: ( IsNull() || MoreThenOrEqual(new Date() ) ) }
]
Run Code Online (Sandbox Code Playgroud)
但我可以让它发挥作用。有谁知道我原来的 where 条件是否可以在不更改查询的情况下完成?
仅供参考:我正在使用 Typescript 和 TypeORM。
编辑1. 根据评论的请求,我使用queryBuilder发布我当前的实现(只是where条件):
.where('param1 = :var1', {va1: 'string'}) …Run Code Online (Sandbox Code Playgroud) 我正在努力解决问题4 - 项目欧拉,我被困了.所以我需要一点帮助我的代码.这是我想要解决的问题:
回文数字两种方式相同.由两个2位数字的乘积制成的最大回文是9009 = 91×99.
找到由两个3位数字的乘积制成的最大回文.
码:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int is_palindrom(int number, int revrse) {
char str1[6];
char str2[6];
sprintf(str1, "%d", number);
sprintf(str2, "%d", revrse);
return strcmp(str1, str2);
}
int main(void) {
int number, revrse;
int i, j, temp;
int maks;
for(i=999;i>99;i--)
for(j=999;j>99;j--) {
temp = number = i*j;
while (temp != 0) {
revrse = revrse * 10;
revrse = revrse + temp%10;
temp = temp/10;
}
if(is_palindrom(number, revrse)==0 && number > maks)
maks …Run Code Online (Sandbox Code Playgroud)