Uso di emoji

Ho intenzione di sostituire retort con discourse reactions. Per scoprire quali emoji usare, volevo sapere come vengono utilizzate nel mio forum. Dato che non ho trovato una query per questo, condivido la mia:

Conta le emoji aggiunte con il plugin retort

SELECT count(*), REGEXP_MATCHES(key, '([a-z_+]+)|retort') emoji
    FROM post_details
    WHERE extra = 'retort'
    GROUP BY key
    ORDER BY 1 DESC

Conta le emoji nei post (senza l’utente di sistema)

SELECT count(*), REGEXP_MATCHES(raw, ' :([a-z_]+): ', 'g') emoji
    FROM posts
    WHERE user_id > 0
    GROUP BY emoji
    ORDER BY 1 DESC
4 Mi Piace

Bello. :slight_smile: Non ho mai usato REGEXP_MATCHES, ma li ho appena provati (beh, il secondo. Non ho Retort installato :slight_smile:).

Penso che tu voglia fare GROUP BY emoji invece di smiley. Inoltre, user_id > 1 escluderebbe l’amministratore originale. Potrebbe essere intenzionale, ma ho pensato di menzionarlo. :+1:

Ho anche chiesto a Bert :robot: una spiegazione, nel caso fosse utile ad altri:

Cosa ha detto Bert:

Questa query viene utilizzata per contare il numero di volte in cui ogni emoji viene utilizzata nella tabella posts.

Ecco una ripartizione della query:

  • SELECT count(*), REGEXP_MATCHES(raw, ' :([a-z_]+): ', 'g') emoji: Questa è la parte principale della query. Conta il numero di righe (count(*)) e utilizza un’espressione regolare (REGEXP_MATCHES) per trovare ed estrarre l’emoji dalla colonna raw. L’espressione regolare ' :([a-z_]+): ' cerca modelli che iniziano e finiscono con due punti (:) e hanno una o più lettere minuscole o underscore in mezzo. Il flag ‘g’ significa che troverà tutte le corrispondenze invece di fermarsi dopo la prima. L’emoji trovata viene quindi rinominata emoji.
  • FROM posts: Specifica la tabella da cui vengono recuperati i dati, in questo caso la tabella posts.
  • WHERE user_id > 0: Questa è una condizione che filtra le righe considerate. Sono incluse solo le righe in cui user_id è maggiore di 0.
  • GROUP BY emoji: Raggruppa i risultati in base all’alias emoji. Ciò significa che per ogni emoji univoca, conterà il numero di righe.
  • ORDER BY 1 DESC: Ordina i risultati in base alla prima colonna del set di risultati (che è il conteggio) in ordine decrescente. Ciò significa che le emoji utilizzate più frequentemente appariranno per prime.

Quindi, in sintesi, questa query conta il numero di volte in cui ogni emoji viene utilizzata nella tabella posts, per i post in cui user_id è maggiore di 0, e ordina i risultati in modo che le emoji più utilizzate appaiano per prime.

2 Mi Piace

Oh, hai ragione. L’ho cambiato sul mio sito ma me ne sono dimenticato qui. :blush:

Infatti, avrei dovuto menzionarlo nel mio post. user_id 1 è un utente legacy (quando la pubblicazione anonima era ancora consentita sul mio sito) che non volevo includere nel conteggio.

1 Mi Piace