loopbackio / loopbackio/loopback-next

Filter by the concatenation of two columns

Ouverte
#6,840 6 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

feature Repository
Langage dominant
TypeScript
Étoiles
5.1k
Forks
1.1k
Merge moyen
2 j 21 h
PR mergées (30 j)
27

Description

## Suggestion

It would be nice to be able to filter a Model by the concatenation of two columns.
I mean, to be able to replicate this type of SQL query:
```sql
SELECT * FROM User WHERE CONCAT(name, ' ', lastName) LIKE '%PARTIAL FULLNAME%'
```

## Use Cases

The most common example is filtering a User model by its full name when it's stored in two columns (name, lastName).
Currently, the only way this is possible (AFAIK) is by sending the RAW query, which makes it almost incompatible with adding more filters.

## Examples
Table example:
| id | name | lastName |
|----|---------|----------|
| 1 | Jackson | Bell |
| 2 | Sarah | Parker |
| 3 | Mason | Brown |

Example of one (possible) implementation of filter object:
```json
{
"limit": 10,
"offset": 0,
"where": {
"leavingDate": null,
"concat": {
"eq": "%on B%",
"separator": " ",
"columns": [
"name",
"lastName"
]
}
}
}
```

Should return:
| id | name | lastName |
|----|---------|----------|
| 1 | Jackson | Bell |
| 3 | Mason | Brown |

## Acceptance criteria

TBD - will be filled by the team.

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par examiner l’objet de filtre `where.concat` proposé et la manière dont les filtres de dépôt traitent actuellement les requêtes brutes. Clarifiez les critères d’acceptation avec l’équipe, notamment les colonnes prises en charge, les séparateurs, les opérateurs de comparaison et le comportement de la base de données. La tâche est terminée lorsque le filtrage par concaténation fonctionne avec les autres filtres et qu’une vérification documentée est disponible.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
typescript
Domaine
api, backend
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
20/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.