我想用typeorm查询生成器表示下面的mysql sql查询:
SELECT
new_rec.*
FROM (SELECT Replace(Replace(Replace(Json_extract(industries, '$[*].id'), '[', ''), ']', ''), ' ', '') AS ids,
recruiter.*
FROM recruiter.recruiter) new_rec
WHERE Find_in_set('14', new_rec.ids) > 0 AND Find_in_set('16', new_rec.ids) > 0;有人能帮我打字吗?
发布于 2020-02-14 11:00:37
const subQuery = connection
.createQueryBuilder()
.select(`
REPLACE(
REPLACE(
REPLACE(
JSON_EXTRACT(recruiter.industries, '$[*].id'),
'[',
''
),
']',
''
),
' ',
''
) AS ids,
recruiter.*
`)
.from('recruiter', 'recruiter');
const selectQuery = this.connection
.createQueryBuilder()
.select('*')
.from('(' + subQuery.getQuery() + ')', 'recruiter');
selectQuery.getRawMany();使用此查询,您将获得与mysql查询相同的结果。
发布于 2020-11-22 05:13:29
您可能解决了这个问题,但是为了让希望使用MySQL集合类型的其他人受益-
以下是typeORM实体中的列:
我们最初使用的是按类型文档进行的枚举,但这并不是我们的需求所需要的。因此,我们选择跳过枚举,只使用string[]。
@Column({ type: 'set' })
gradeLevels: string[];使用TypeORM回购发现:
gradeLevels: Raw(col => `FIND_IN_SET('${gradeLevel}', ${col}) > 0`)使用TypeORM queryBuilder:
.andWhere('FIND_IN_SET(:gradeLevel, question.gradeLevels) > 0', { gradeLevel })https://stackoverflow.com/questions/60161046
复制相似问题