Salut à tous, j’ai remarqué un comportement étrange lors de la modification et de l’exécution d’une requête dans Data Explorer. J’essaie d’utiliser les opérateurs WHERE et IN pour sélectionner uniquement les publications des sujets dans certaines catégories :
WHERE
t.category_id IN (420, 421, 426)
Cependant, je ne suis pas sûr que la condition WHERE fonctionne comme prévu : si j’exécute la requête pour des périodes antérieures à la création des catégories en question, elle liste simplement tous les sujets, quelle que soit la catégorie. De plus, l’opérateur IN ne change pas de couleur, et je me demande si Data Explorer le reconnaît comme un opérateur :
Une idée de ce qui se passe ? Merci beaucoup !
Hmm. 
Je l’ai utilisé dans une requête très similaire hier soir et cela a fonctionné comme prévu pour moi.
Pourriez-vous partager votre requête complète afin que nous puissions voir s’il pourrait y avoir autre chose en jeu ?
1 « J'aime »
Bien sûr, voici. La requête est utilisée pour récupérer les informations nécessaires à la génération d’un fichier journal personnalisé pouvant être traité par Gource. Voir : Custom Log Format · acaudwell/Gource Wiki · GitHub
-- Cette requête récupère une liste des derniers messages,
-- ainsi que les informations utilisateur et les détails du sujet associés.
-- Le résultat est trié par date de création dans l'ordre croissant.
-- Les champs sélectionnés sont les suivants :
-- timestamp : un horodatage au format ISO 8601 ou unix de la création du message.
-- username : le nom d'utilisateur de la personne qui a créé le message.
-- type : une valeur codée en dur 'A' indiquant le type d'action (dans ce cas, 'Ajouté').
-- topic : l'ID du sujet auquel le message appartient.
-- post_number : le numéro unique du message au sein de son sujet.
-- reply_to_post_number : le numéro du message auquel ce message répond (le cas échéant).
-- raw : le contenu du message, limité aux 30 premiers caractères.
-- category_id : l'ID de la catégorie à laquelle le sujet appartient.
SELECT
p.created_at as timestamp,
u.username,
'A' as type,
p.topic_id as topic,
p.post_number as post_number,
p.reply_to_post_number as reply_to_post_number,
SUBSTRING(p.raw, 1, 30) AS raw,
t.category_id
FROM
posts p
JOIN
users u ON p.user_id = u.id
JOIN
topics t ON p.topic_id = t.id
WHERE
t.category_id IN (420, 421, 426)
AND t.created_at > '2022-01-01'
ORDER BY
p.created_at ASC
LIMIT 1000
1 « J'aime »
Tout semble en ordre.
Lorsque je l’exécute sur nos trois nouvelles catégories de documents (créées il y a environ 10 jours) en utilisant le même AND t.created_at \u003e '2022-01-01', je ne vois aucune donnée provenant de l’extérieur de ces catégories être extraite (beaucoup de petits articles d’action cependant, que vous pourriez vouloir filtrer en fonction de votre cas d’utilisation). L’exécution sans le AND t.created_at \u003e '2022-01-01' du tout n’extrait également que des données de ces catégories.
2 « J'aime »