loopbackio / loopbackio/loopback-next
Filter by the concatenation of two columns
Personne n'a encore pris cette issue.
- 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
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- 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